Name: Anonymous 2012-07-28 2:04
In languages where semicolons are separators, the best place to put them is at the beginning of the line, properly indented.
http://archive.computerhistory.org/resources/text/algol/algol_bulletin/A46/P44.HTM
http://smlnj-gforge.cs.uchicago.edu/scm/viewvc.php/sml/releases/release-110.38/ckit/src/ast/pp/pp-ast-fn.sml?logsort=rev&view=markup&root=smlnj
( .LOC .INT N
; READ(N)
# PRINT THE PASCAL TRIANGLE
UP TO LAYER N #
; .LOC [0:N%2] .INT LINE
; .STRING GAP = 3*" "
; LINE[0] := 1
; .FOR I .TO N
.DO [] .INT OLDLINE = LINE[ :(I-1)%2 0]
; .FOR J .FROM 1 .TO (I-1)%2
.DO LINE[J] := OLDLINE[J-1]+OLDLINE[J] .OD
; LINE[I%2] := LINE[(I-1)%2]
; .FOR J
.FROM I-N
.TO 2*(I-1)
.DO PRINT((
( J<0 .OR .ODD J
| GAP
| WHOLE(LINE[
( J<I
| J%2
| I-1-J%2
)]
, -3)
)
))
.OD
; PRINT(NEWLINE)
.OD
)
http://archive.computerhistory.org/resources/text/algol/algol_bulletin/A46/P44.HTM
http://smlnj-gforge.cs.uchicago.edu/scm/viewvc.php/sml/releases/release-110.38/ckit/src/ast/pp/pp-ast-fn.sml?logsort=rev&view=markup&root=smlnj
( .LOC .INT N
; READ(N)
# PRINT THE PASCAL TRIANGLE
UP TO LAYER N #
; .LOC [0:N%2] .INT LINE
; .STRING GAP = 3*" "
; LINE[0] := 1
; .FOR I .TO N
.DO [] .INT OLDLINE = LINE[ :(I-1)%2 0]
; .FOR J .FROM 1 .TO (I-1)%2
.DO LINE[J] := OLDLINE[J-1]+OLDLINE[J] .OD
; LINE[I%2] := LINE[(I-1)%2]
; .FOR J
.FROM I-N
.TO 2*(I-1)
.DO PRINT((
( J<0 .OR .ODD J
| GAP
| WHOLE(LINE[
( J<I
| J%2
| I-1-J%2
)]
, -3)
)
))
.OD
; PRINT(NEWLINE)
.OD
)