大家好,我想开始使用Scheme,并有两个问题。首先,你会推荐使用解释器还是编译器来运行Scheme?为什么?其次,你会推荐哪个Scheme解释器或编译器?为什么?谢谢!
大家好,我想开始使用Scheme,并有两个问题。首先,你会推荐使用解释器还是编译器来运行Scheme?为什么?其次,你会推荐哪个Scheme解释器或编译器?为什么?谢谢!
我知道你已经接受了答案,但为了日后访问此问题的人,我推荐Chicken Scheme。与mzscheme相比,它往往产生更小的可执行文件。例如,考虑以下“hello world”应用程序:
(define (say-hello name)
(print (string-append "Hello, " name))
(newline))
(say-hello "Earthling")
使用 mzc 编译 hello.scm 文件得到的可执行文件大小为 3.3M:
使用 csc 编译 hello.scm 文件得到的可执行文件名为 ctest,大小为 16k:
如果您需要库支持,Chicken 提供了 Eggs Unlimited(类似于 mzscheme 的 PlaneT 或 ruby 的 gems),请查看Egg Index。
我建议使用Gambit-C方案:
初步检查显示,Chicken方案似乎不够令人满意,而Bigloo则可能是一个严肃的竞争对手。但我不能对它们发表太多评论。
我建议不要担心它是作为编译器、解释器还是两者结合的形式实现 - 尤其是在开始阶段,帮助文件的质量(例如)比它的具体实现方式更重要。
至于选择哪一个,DrRacket是我最常用的。
PTL Scheme已更名为Racket(http://racket-lang.org/),但它基本上仍然是相同的。Dr.Racket是一个非常巧妙的开发环境,带有shell,要用Scheme编写,你只需要在文件顶部加上#lang scheme
。