loopマクロ
私はloopマクロが好きだ.
(loop for i from 0 to 100 summing i)
だが, loopはあくまでマクロ. この簡潔で美しい表現は,
(BLOCK NIL (LET ((I 1)) (DECLARE (TYPE (AND REAL NUMBER) I)) (LET ((#:LOOP-SUM-599 0)) (DECLARE (TYPE NUMBER #:LOOP-SUM-599)) (SB-LOOP::LOOP-BODY NIL (NIL NIL (WHEN (> I '10) (GO SB-LOOP::END-LOOP)) NIL) ((SETQ #:LOOP-SUM-599 (+ #:LOOP-SUM-599 I))) (NIL (SB-LOOP::LOOP-REALLY-DESETQ I (1+ I)) (WHEN (> I '10) (GO SB-LOOP::END-LOOP)) NIL) ((RETURN-FROM NIL #:LOOP-SUM-599))))))
ゾクゾクするようなコードに展開される.