Scheme interpreter in clojure

     昨天晚上用clojure搞了个scheme解释器,基本上是sicp里的解释器的clojure翻译版本,可能唯一值的一提的是对transient集合的使用,实现副作用的set!。总共代码包含注释才366行,支持的feature包括

Feature Supported Comment
define yes
lambda yes
variable lookup yes
primitive procedure evaluation yes
compound procedure evaluation yes no tail recursion yet
if yes
cond yes
let yes

let* yes
no named let* yet
letrec no
begin yes

set! yes

quote yes
quasiquote no
unquote no
delay no
define-syntax no

       支持的primitive procedure包括常见的四则运算、car/cdr、list以及display、newline等。代码放在了github上: https://github.com/killme2008/cscheme,有兴趣的可以玩玩吧。

你可能感兴趣的:(Scheme interpreter in clojure)