このインタプリタはzickが思いつきで開発を始め、 殴り書きのようにソースを書いたもので、ろくにテストもしてません。 一応、ブラウザ上で動作するので、ある程度安全だとは思いますが、 万が一、問題が発生しても当方は一切責任はとりません。 <注意点> GCはJavaScript任せです。 シンボルはGCで開放されませんが、シンボルを機械的に作る方法が用意されていないので、実質使い切れないかと思います。 末尾再帰の最適化はされません。 継続なんてもちろんありません。 <データ型> 数値型 真偽型 シンボル 対 関数 <スペシャルフォーム> define (関数定義のsyntax sugarなし) cond if quote (引用符'のsyntax sugarあり) let (名前付きletなし) begin lambda set! <関数> car cdr cons eq? atom? boolean? pair? list? number? procedure? symbol? set-car! set-cdr + - * / mod = > >= < <= caar cadr cdar cddr null? not list assoc length append list-tail list-ref