小Schemer和球拍

Mar*_*ote 20 scheme the-little-schemer racket

我开始阅读Little Schemer了,而不是PLT Scheme,我们有Racket.我想知道Racket是否适合在本书中进行练习,或者我是否需要获得另一个真正的Scheme编译器.在我忘了告诉你之前,我的操作系统是Windows x64.

书,语言和范例足够复杂,我希望避免与编译器挣扎.

非常感谢提前.

Ósc*_*pez 25

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。 (2认同)
  • 太棒了!Acabo de editar mi respuesta, tiene varios tips adicionales para usar DrRacket con The Little Schemer (2认同)
  • 我一直在使用球拍,但我注意到我必须更改所有示例以包含引用。就像你不能只输入(咖啡杯茶杯和希克杯)一样,它必须是'(咖啡杯茶杯和希克杯),带前导引号。 (2认同)

Mar*_*gar 6

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


Mic*_*ott 5

您实际上只需要该atom?功能。本书序言部分实质上描述了:

(define (atom? x)
  (and (not (pair? x)) (not (null? x))))
Run Code Online (Sandbox Code Playgroud)

如前所述,它应满足以下测试:

(atom? '()) ;=> #f
Run Code Online (Sandbox Code Playgroud)

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

关于更详细的讨论atom?在这里

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

顺便说一句,我使用Vim编辑Racket,但其他一些编辑器也可以