\ don@donhopkins.com
FORTH ?KNOW IF HONK ELSE FORTH LEARN THEN
: C(-; LICK SMILE NOSE WINK ;
\ FORTH PAPER TAPE PUNCHER:
: PT# ( L --- L/2 )
DUP 1 AND IF
ASCII @
ELSE BL THEN
HOLD
2/
;
: PT. ( N --- )
<# PT# PT# PT#
ASCII . HOLD
PT# PT# PT# PT#
#> TYPE
;
: CUT
." -----------" CR
;
: PTAPE
CUT
BEGIN
KEY ?DUP WHILE
DUP ." |" PT. ." |" SPACE EMIT CR
REPEAT
CUT
;
Lisp -vs- Forth -vs- PostScript: ; Lisp:
(defun caar (x) (car (car x)))
(defun caaar (x) (car (car (car x))))
(defun caaaar (x) (car (car (car (car x)))))
\ Forth:
: droop drop drop ;
: drooop drop drop drop ;
: droooop drop drop drop drop ;
% PostScript:
/poop { pop pop } def
/pooop { pop pop pop } def
/poooop { pop pop pop pop } def