壊れないマウス

壊れた!

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))))))

ゾクゾクするようなコードに展開される.