莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          Scheme interpreter in clojure

          Posted on 2011-01-24 10:42 dennis 閱讀(3805) 評論(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,有興趣的可以玩玩吧。
          主站蜘蛛池模板: 凤山市| 湘潭市| 乐安县| 柞水县| 兴义市| 新安县| 平定县| 柳州市| 台北市| 怀远县| 津南区| 洞头县| 巫山县| 和林格尔县| 保亭| 利津县| 安福县| 定安县| 康定县| 宕昌县| 宁河县| 台东县| 堆龙德庆县| 盐池县| 商城县| 普陀区| 保亭| 邵阳县| 黄浦区| 洛南县| 济阳县| 广南县| 阿拉善左旗| 子洲县| 彰化市| 永修县| 华坪县| 元江| 定州市| 大洼县| 灌云县|