<cl> (scheme-interpreter) ==> (set! table (lambda (f start end) (if (<= start end) (begin (write (list start (f start))) (newline) (table f (+ start 1) end))))) (EXCL::.LEXICAL-CLOSURE. (LAMBDA (&REST ARGS) (INTERP CODE (NCONC (MAPCAR (FUNCTION LIST) VARS ARGS) ENV))) ((CODE BEGIN (IF (<= START END) (BEGIN (WRITE (LIST START (F START))) (NEWLINE) (TABLE F (+ START 1) END)))) (VARS F START END) (ENV) (PARAMS (F START END) (IF (<= START END) (BEGIN (WRITE (LIST START (F START))) (NEWLINE) (TABLE F (+ START 1) END)))) (NAME . LAMBDA)) NIL ((SCHEME-SPECIAL-FORM-INTERP . EXCL::INVALID)) NIL)
==> (table fact 1 10) (1 1) (2 2) (3 6) (4 24) (5 120) (6 720) (7 5040) (8 40320) (9 362880) (10 3628800) NILtableの本体の中で(f start)という式が,CommonLispでは,(funcall f start) となるところですが,Schemeでは単に(f start)となります.