SchemeサブセットのCommon Lispによる実装です。
lambda, quote('), quasiquote(`),
unquote(,), unquote-splicing(,@),
set! let, let\*, letrec,
if, cond, and, or, begin, do, quasi
def-macro (Common Lisp風マクロの定義)
cl-mode (部分的なCommon LispのS式の評価)
number?, +, -, *, /, =, <, <=, >, >=
null?, pair?, list?, symbol?, car, cdr, cons, list, length, memq, last, append, set-car!, set-cdr!
boolean?, not
string?, string-append, symbol->string, string->symbol, string->number, number->string
procedure?
eq?, neq?, equal?
load
Schemeのdefineのスタイルで書いてください。
(defmacro (my-if test then else)
`(cond (,test ,then)
(,else else)))
クォートなどは特に不要です。
(cl-mode (loop for i below 10 do (print i)))