scheme - 本文使用哪种方案?

标签 scheme racket

我正在阅读《方案的三种实现模型》。我想合作并实现解释器,但收到错误消息。我认为作者是 chez 方案的幕后黑手,所以除了 DrRacket(R5RS 模式)之外,我还尝试了该方案。有谁知道将运行此示例代码的方案设置?看来这是方案的常见问题。我尝试的每个示例代码都有一些问题或者是在不同版本中创建的。这是该论文的链接。谢谢。

https://www.cs.unm.edu/~williams/cs491/three-imp.pdf

最佳答案

出现错误并不奇怪。该论文写于1987年,当时的标准是R2RS(1985),直到11月R3RS发布。与 R5RS 相比,它发生了相当大的变化,R5RS 是当今实际使用的最早版本,因此您不会找到任何可以运行这些示例的现代方案,除非它只是经过 4 次修订的基本部分。

例如。我看到使用了 rec 并在 R2RS to R3RS changelog 中提到将其删除。 。

其他变更日志是:

由于很多人关注 SICP,而且它也是 R3RS 时代的,您可能想尝试 SICP compability package在 DrRacket 中。当左下角选择“从源确定语言”时,将 #langracket 替换为 #lang Planet neil/sicp 并按 RUN.

它将显示一些错误,但只需忽略它,直到完成并再次按RUN。您现在拥有 SICP 示例运行的语言,它比现代 R5RS 更接近 Kent Dybvigs 语言。

现在SICP我猜是R3RS,但是reading this thread我其实也不确定。兼容性包可能只适用于 SICP 示例,因此这可能仍然是一个坎坷的过程。

我想我已经阅读了所有有关 LISP 方言的旧论文的一半,以了解该语言的演变以及想法是如何产生的。我先学了CL,看了Paul Grahams essay about McCharty后自己做了LISP1 。我读了lambda论文(最初的Scheme标准论文)并最终观看了all SICP videoes 。当开始使用 R5RS 时,我一直保持在线报告,因为我确实遇到了错误,但了解历史也很高兴。

在进行过程中可以随意添加问题,但请添加一些有关它是一个古老的方案以及您希望它发挥作用的信息。

祝你好运:)

关于scheme - 本文使用哪种方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25456090/

相关文章:

scheme - 想要在程序未运行时更改 Racket GUI 应用程序标题(在任务栏上)

racket - 如何获取当前.scrbl文件的路径?

function - 这是否可以在 Racket 中定义一个没有参数的函数?

scheme - 比较方案中列表中的奇数和偶数

scheme - 如何将 map 与需要更多参数的函数一起使用

macros - `amb` 运算符是宏还是过程?

scheme - 如何图案匹配 'letrec'

lisp - 关于SICP chpt 4.1 : How does (analyze expr) help speed up eval?的问题

lisp - #,在[也许#,信件]

file - 从 Racket 的目录列表中删除隐藏文件