庄周梦蝶

生活、程序、未来
   :: 首页 ::  ::  :: 聚合  :: 管理

Scheme interpreter in clojure

Posted on 2011-01-24 10:42 dennis 阅读(3574) 评论(0)  编辑  收藏 所属分类: my open-source计算机科学与基础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,有兴趣的可以玩玩吧。

只有注册用户登录后才能发表评论。


网站导航: