From f3e9633e94b03dd4178f6970436be6e265541261 Mon Sep 17 00:00:00 2001 From: jgart Date: Wed, 29 Dec 2021 01:23:36 -0500 Subject: Add init for lisp for schemers topic --- topics/lisp/lisp4schemers.gmi | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 topics/lisp/lisp4schemers.gmi (limited to 'topics/lisp') diff --git a/topics/lisp/lisp4schemers.gmi b/topics/lisp/lisp4schemers.gmi new file mode 100644 index 0000000..e776915 --- /dev/null +++ b/topics/lisp/lisp4schemers.gmi @@ -0,0 +1,40 @@ +# Lisp For Schemers + +## iota + +### In Scheme + +``` +scheme@(guile-user)> (iota 12) + +$1 = (0 1 2 3 4 5 6 7 8 9 10 11) +``` + +### In Common Lisp + +``` +CL-USER: (loop for i below 12 collect i) + +(0 1 2 3 4 5 6 7 8 9 10 11) + +CL-USER: (macroexpand '(loop for i below 12 collect i)) + +(BLOCK NIL + (LET ((I 0)) + (DECLARE (IGNORABLE I) + (TYPE (AND NUMBER REAL) I)) + (SB-LOOP::WITH-LOOP-LIST-COLLECTION-HEAD (#:LOOP-LIST-HEAD-493 + #:LOOP-LIST-TAIL-494) + (TAGBODY + SB-LOOP::NEXT-LOOP + (WHEN (>= I '12) (GO SB-LOOP::END-LOOP)) + (SB-LOOP::LOOP-COLLECT-RPLACD + (#:LOOP-LIST-HEAD-493 #:LOOP-LIST-TAIL-494) (LIST I)) + (SB-LOOP::LOOP-DESETQ I (1+ I)) + (GO SB-LOOP::NEXT-LOOP) + SB-LOOP::END-LOOP + (RETURN-FROM NIL + (SB-LOOP::LOOP-COLLECT-ANSWER #:LOOP-LIST-HEAD-493)))))) +T +``` + -- cgit v1.2.3