【问题标题】:Little Schemer and Racket小阴谋家和球拍
【发布时间】:2012-10-11 19:34:03
【问题描述】:

我开始阅读 Little Schemer,现在我们使用 Racket 代替 PLT Scheme。我想知道 Racket 是否适合做书中的练习,还是我需要另一个真正的 Scheme 编译器。在我忘记告诉你之前,我的操作系统是 Windows x64。

这本书、语言和范式已经够复杂了,我很想避免与编译器打交道。

非常感谢。

【问题讨论】:

    标签: scheme racket the-little-schemer


    【解决方案1】:

    球拍/方案是可以互换的。你应该能够用它来回答任何练习。祝你好运。

    另外,我建议下载 Dr. Racket 作为您的翻译。

    【讨论】:

      【解决方案2】:

      DrRacket 是 DrScheme 的 (r) 演变; DrRacket 非常适合“The Little Schemer”中的练习。只是不要忘记:

      1. Language 对话框中,选择“使用源中声明的语言”
      2. 在您创建的每个文件的顶部写上#lang racket
      3. 在每个文件中实现 atom? 谓词,如本书开头所述
      4. 如果要重新实现现有过程,请在单独的选项卡或窗口中执行此操作,因为尝试在编辑窗口中重写过程将导致 duplicate definition for identifier 错误。如有必要,使用多个文件来保存过程定义

      【讨论】:

      • Gracias Óscar, un abrazo desde Argentina.
      • 非常有兴趣! Acabo de editar mi respuesta, tiene varios Tips adicionales para usar DrRacket con The Little Schemer
      • 我一直在使用球拍,但我注意到我必须更改所有示例以包含引号。就像您不能只输入 (coffee cup tea cup and hick cup),它必须是 '(coffe cup tea cup and hick cup),并带有前导引号。
      【解决方案3】:

      我已经让这本书的作者担任教授。他现在自己使用 Racket,但他使用 Emacs 作为文本编辑器。

      【讨论】:

        【解决方案4】:

        你真的只需要atom? 函数。本书前言中的描述基本上是:

        (define (atom? x)
          (and (not (pair? x)) (not (null? x))))
        

        如前所述,它应该满足这个测试:

        (atom? '()) ;=> #f
        

        请注意,Racklog 中还有一个定义将不满足该测试

        关于atom? 的更详细讨论是here

        尽管本书建议实现add1sub1,但Racket确实已经提供了它们。

        顺便说一句,我使用Vim for editing Racket,但a few other editors are capable

        【讨论】:

        • 不确定;可能没有相关性。我在寻找原子时偶然发现了它?功能很容易尝试,但发现它不起作用,所以认为值得警告。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-04
        • 1970-01-01
        相关资源
        最近更新 更多