昨天晚上用clojure搞了个scheme解释器,基本上是sicp里的解释器的clojure翻译版本,可能唯一值的一提的是对transient集合的使用,实现副作用的set!。总共代码包含注释才366行,支持的feature包括
FeatureSupportedCommentdefineyeslambdayesvariable lookupyesprimitive procedure evaluationyescompound procedure evaluationyesno tail recursion yetifyescondyesletyeslet*yesno named let* yetletrecnobeginyesset!yesquoteyesquasiquotenounquotenodelaynodefine-syntaxno
支持的primitive procedure包括常见的四则运算、car/cdr、list以及display、newline等。代码放在了github上:
https://github.com/killme2008/cscheme,有兴趣的可以玩玩吧。
文章转自庄周梦蝶 ,原文发布时间2011-01-24
相关资源:敏捷开发V1.0.pptx