Anonymous user
Execute HQ9+: Difference between revisions
Added COBOL solution.
(added →{{header|Racket}}: implementation) |
(Added COBOL solution.) |
||
Line 203:
\+ (reset! accumulator (inc @accumulator)))
(if-not (= (inc pointer) (count commands)) (recur (inc pointer))))))</lang>
=={{header|COBOL}}==
<lang cobol> IDENTIFICATION DIVISION.
PROGRAM-ID. Exec-Hq9.
DATA DIVISION.
LOCAL-STORAGE SECTION.
78 Code-Length VALUE 256.
01 i PIC 999.
01 accumulator PIC 999.
01 bottles PIC 999.
LINKAGE SECTION.
01 hq9-code PIC X(Code-Length).
PROCEDURE DIVISION USING BY VALUE hq9-code.
PERFORM VARYING i FROM 1 BY 1 UNTIL Code-Length < i
EVALUATE hq9-code (i:1)
WHEN "Q"
DISPLAY FUNCTION TRIM(hq9-code)
WHEN "H"
DISPLAY "Hello, World!"
WHEN "9"
PERFORM WITH TEST AFTER VARYING bottles
FROM 99 BY -1 UNTIL bottles = ZERO
DISPLAY
bottles " bottles of beer on the wall"
DISPLAY bottles " bottles of beer"
DISPLAY "Take one down, pass it around"
SUBTRACT 1 FROM bottles
DISPLAY
bottles " bottles of beer on the wall"
END-PERFORM
WHEN "+"
ADD 1 TO accumulator
END-EVALUATE
END-PERFORM
GOBACK
.</lang>
=={{header|Common Lisp}}==
|