Little Schemer and Racket

2019-01-22 08:16发布

问题:

I'm starting to read the Little Schemer and now instead of PLT Scheme we have Racket. I would like to know if Racket is suitable for doing the exercises in the book or do I need to get another true Scheme compiler. Before I forgot to tell you, my OS is Windows x64.

The book, language and paradigm is complex enough, I would love to avoid struggling with a compiler.

Thanks a lot in advance.

回答1:

DrRacket is the (r)evolution of DrScheme; DrRacket will work perfectly for the exercises in "The Little Schemer". Just don't forget to:

  1. In the Language dialog, choose "Use the language declared in the source"
  2. Write #lang racket at the top of each file you create
  3. Implement the atom? predicate in each file as explained at the very beginning of the book
  4. If you're going to re-implement an existing procedure, do so in a separate tab or window, because trying to rewrite a procedure in the edit window will result in a duplicate definition for identifier error. If necessary, use several files for saving the procedure definitions


回答2:

You really just need the atom? function. What’s described in the book's preface is essentially:

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

As mentioned, it should satisfy this test:

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

Note that there is also a definition in Racklog that will not satisfy that test.

A more detailed discussion on atom? is here.

Despite the book's suggestion to implement add1 and sub1, Racket does already provide them.

BTW, I use Vim for editing Racket, but a few other editors are capable.



回答3:

I have had the author of the book as a professor. He now uses Racket himself, but he uses Emacs as a text editor.



回答4:

Racket/Scheme are interchangeable. You should be able to answer any exercise with it. Good luck.

Also, I recommend downloading Dr. Racket as your interpreter.