【发布时间】:2012-10-11 19:34:03
【问题描述】:
我开始阅读 Little Schemer,现在我们使用 Racket 代替 PLT Scheme。我想知道 Racket 是否适合做书中的练习,还是我需要另一个真正的 Scheme 编译器。在我忘记告诉你之前,我的操作系统是 Windows x64。
这本书、语言和范式已经够复杂了,我很想避免与编译器打交道。
非常感谢。
【问题讨论】:
标签: scheme racket the-little-schemer
我开始阅读 Little Schemer,现在我们使用 Racket 代替 PLT Scheme。我想知道 Racket 是否适合做书中的练习,还是我需要另一个真正的 Scheme 编译器。在我忘记告诉你之前,我的操作系统是 Windows x64。
这本书、语言和范式已经够复杂了,我很想避免与编译器打交道。
非常感谢。
【问题讨论】:
标签: scheme racket the-little-schemer
球拍/方案是可以互换的。你应该能够用它来回答任何练习。祝你好运。
另外,我建议下载 Dr. Racket 作为您的翻译。
【讨论】:
DrRacket 是 DrScheme 的 (r) 演变; DrRacket 非常适合“The Little Schemer”中的练习。只是不要忘记:
Language 对话框中,选择“使用源中声明的语言”#lang racket
atom? 谓词,如本书开头所述duplicate definition for identifier 错误。如有必要,使用多个文件来保存过程定义【讨论】:
我已经让这本书的作者担任教授。他现在自己使用 Racket,但他使用 Emacs 作为文本编辑器。
【讨论】:
你真的只需要atom? 函数。本书前言中的描述基本上是:
(define (atom? x)
(and (not (pair? x)) (not (null? x))))
如前所述,它应该满足这个测试:
(atom? '()) ;=> #f
请注意,Racklog 中还有一个定义将不满足该测试。
关于atom? 的更详细讨论是here。
尽管本书建议实现add1 和sub1,但Racket确实已经提供了它们。
顺便说一句,我使用Vim for editing Racket,但a few other editors are capable。
【讨论】: