通过SICP工作的最佳方案实施是什么?

时间:2008-11-04 02:52:31

标签: lisp scheme sicp

我一直在使用PLT Scheme,但它有一些问题。有没有人知道通过SICP更好的实施?

8 个答案:

答案 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 Schemesicp 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。