DonHopkins

Created:11 years agoKarma: 23622

    \ 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