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

Joe*_*ken 63 lisp scheme sicp

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

soe*_*ard 81

使用Racket(以前的PLT Scheme).

DrRacket IDE是包括SICP在内的所有方案的出色起点.

要在文档中查找关键字,请将光标放在关键字上,然后按F1.在DrRacket中,您现在可以直接在REPL(read-eval-print-loop)中查看图像.

Neil van Dyke 为STRP支持DrRacket.

更新:新的SICP软件包位于http://pkgs.racket-lang.org/#[sicp] 使用软件包管理器(在DrRacket中)下载或使用raco. 手册

Update2:如果你想尝试新的SICP图片语言实现,那么下载sicp-pict2.rkt.

  • 注意:Neil van Dyke为Racket编写了一个非常好的SICP包.使用它而不是旧的. (5认同)

kep*_*aro 57

使用MIT Scheme.

它由SICP的作者推荐,并在麻省理工学院用于6.001:计算机程序的结构和解释课程.

  • 我对MIT Scheme不喜欢的是我无法弄清楚如何从命令行简单地执行一个方案脚本并将其输出显示在我的控制台中 - 就像我期望运行Python一样或Ruby脚本.我是非常密集的吗?如果没有启动基于Emacs的大型交互式环境,然后每次都不得不再次退出,这是如何实现的? (13认同)
  • 但MIT Scheme似乎没有针对linux x86_64的构建 (3认同)
  • 从命令行执行:http://stackoverflow.com/questions/24720112/mit-scheme-run-a-script-and-exit (2认同)
  • @JonathanHartley [如何使用MIT-Scheme执行.scm脚本(在REPL之外)?](/sf/ask/63277791/) (2认同)

Lou*_*arg 11

MIT/GNU Scheme,只需确保加载SICP兼容(是的,它们提供了特定的库来增强对SICP练习的保证).


Fre*_*uid 10

在 macOS 上完成这件事令人惊讶地烦人。假设您有 Homebrew,则它是截至今天的工作方式。(可能想brew update偶尔运行一次)。

brew cask install racket
raco setup  # might be optional
raco pkg install sicp
Run Code Online (Sandbox Code Playgroud)

现在你可以(require sicp)或者干脆运行

racket -l sicp --repl
Run Code Online (Sandbox Code Playgroud)

您可能想要缩写为scheme. 在 bash 中

alias scheme='racket -l sicp --repl'
Run Code Online (Sandbox Code Playgroud)

你可以添加到你的 ~/.bashrc


小智 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.