我一直在使用PLT Scheme,但它有一些问题。有没有人知道通过SICP更好的实施?
答案 0 :(得分:79)
使用Racket(原PLT计划)。
DrRacket IDE是包括SICP在内的所有方案的绝佳起点。
要在文档中查找关键字,请将光标放在关键字上,然后按 F1 。在DrRacket中,您现在可以直接在REPL中看到图像(read-eval-print-loop)。
SICP Support for DrRacket,作者:Neil van Dyke。
更新:新的SICP包位于http://pkgs.racket-lang.org/#[sicp]
使用包管理器(在DrRacket中)下载它或使用raco
。
Manual
Update2:此外,如果您想尝试SICP图片语言的新实现,请下载sicp-pict2.rkt。
答案 1 :(得分:55)
使用MIT Scheme。
由SICP的作者推荐,并在麻省理工学院用于 6.001:计算机程序的结构和解释课程。
答案 2 :(得分:11)
MIT/GNU Scheme,只需确保加载SICP兼容性package(是的,它们提供了特定的库以增强对SICP练习的保证)。
答案 3 :(得分:6)
本周我刚刚开始做SICP。
目前,MIT Scheme在Ubuntu Linux(9.04“jaunty”)中被破解。它可能在将来有效。
DrScheme正在工作,并且运作良好。您可以使用上面列出的soegard软件包或Neil Van Dyke的软件包,该软件包基于soegard的软件包,可从http://www.neilvandyke.org/sicp-plt/获得。关于这个软件包的好处是,安装后,您可以使用Language | Choose Language ....菜单项来选择SICP。
答案 4 :(得分:3)
这对于在macOS上完成是令人惊讶的烦恼。假设你有自制软件,这就是今天的工作方式。 (可能偶尔会运行brew update
)。
brew cask install racket
raco setup # might be optional
raco pkg install sicp
现在您可以(require sicp)
或只是运行
racket -l sicp --repl
您可能希望缩写为scheme
。在bash中,
alias scheme='racket -l sicp --repl'
您可以将其添加到~/.bashrc
答案 5 :(得分:1)
PLT Scheme效果非常好,或者像凯帕罗所说的那样MIT Scheme。你有什么问题吗?
答案 6 :(得分:1)
CHICKEN Scheme有sicp library,可为SICP提供支持。您可以通过运行chicken-install sicp
并在源代码的开头写下此代码来安装它:(use sicp)
。
答案 7 :(得分:0)
我现在正在使用Chez Scheme来完成SICP。它是Scheme的一种非常古老的方言,所以可能它与SICP所写的内容相距甚远。
请注意,Chez Scheme项目页面链接了一个可以在类Unix平台上构建的Windows二进制文件和源代码。但如果您使用的是Mac,那么您可能想要
brew chezscheme
man chez
假设你有homebrew,你真的应该这样做。
麻省理工学院计划为何不?因为交互式前端是Edwin,一个使用EMACS约定的编辑器。 (目前,它是一个真正的EMACS模式,过去曾经在Scheme中实现过。)我曾经知道基本的EMACS,但是我的技能因废弃而萎缩,这告诉我重新学习这个编辑器是不值得的麻烦
为什么不用DrRacket?如果我看过@ frederick-squid的酿造说明,我可能会尝试一下。相反,我试图遵循计划和sicp的官方说明,这些指令严重过时。然后我尝试让IDE进入方案模式,这似乎是直观的,但不是。
太麻烦了。而且我不确定我是否想进入一个花哨的语言设计IDE,特别是那个对Scheme的支持不力引发原始问题的IDE。