← Back

DonHopkins

Member since 2014 Karma: 25,193 12,625 submissions
<p><pre><code> \ 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 ; </code></pre> Lisp -vs- Forth -vs- PostScript:<p><pre><code> ; 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</code></pre>