Alexander Well, in fact, I thought it worked for me, too. And then it stopped working; DrR threw an "application: not a procedure;" error saying it was given a null list instead of an application. Removing the parens got it working again.
Now that just doesn't make any sense at all but that's what I seem to have observed. Looking at some StackOverflow responses on similar errors I found that parens in certain positions are interpreted as invoking a function regardless of what may in fact be inside the parens. IOW, extra parens will trigger that error. I believe that initially it was working. Perhaps I had run it in the executable pane instead of loading and running the defs file? If I have more time somewhere along, I'll try to recreate things. When I first defined atom? I was using a very small definitions file with the " #lang racket" spec; IIRC atom? worked. After trying BSL and then going back to using the #lang spec and adding some comments and the list of variable defs - it didn't work. At the moment I don't have any good ideas, except to chg the code to get it to work and proceed. Rufus On 03/03/2015 02:21 PM, Alexander D. Knauth wrote: > This works for me: > (define atom? (lambda (arg1) > (and (not (pair? arg1)) > (not (null? arg1))))) > > > On Mar 3, 2015, at 3:16 PM, Rufus <rlagg...@mail.com> wrote: > >> On page 10 of TLS there is a note defining the "atom?" function for the >> reader to use w/Lisp or Scheme. The definition for Scheme (which is the >> most likely one to use for DrR) does not work. To fix one must remove >> the parens that open at the "and". Apparently the DrR >> compiler/interpreter sees them as an attempt to invoke a function and >> that's not correct here. I don't know if other Lisp versions would find >> the code in the book correct. >> >> In the text below XXX shows where I removed a set of parens to make the >> function work. >> >> (define atom? (lambda (arg1) >> XXX and (not (pair? arg1)) >> (not (null? arg1)) >> XXX >> ) >> ) >> >> >> Rufus >> ____________________ >> Racket Users list: >> http://lists.racket-lang.org/users > ____________________ Racket Users list: http://lists.racket-lang.org/users