[racket] TLS "atom?" definition for Scheme does not work in DrRacket

From: Rufus (rlaggren at mail.com)
Date: Wed Mar 4 13:18:41 EST 2015

To All

Using BSL-Lists:

Matt't basic test works.

(define rufus 0)

Run, then type and execute "rufus" in the I-pane which displays 0

If I then add Alexander's example define so the def file appears as follows:
(define rufus 0)

(define atom? (lambda (arg1)
                (and (not (pair? arg1))
                     (not (null? arg1)))))

and hit Run I get an error in the I-pane:

"pair?; this function is not defined".

OK, so the BSL-Lists doesn't have that function. Then when I again type
"rufus"/Enter in the I-pane I get an error "rufus; this variable is not

So it appears the Run procedure deletes the existing environment before
running the defs file and if it finds any error in the defs file it does
not run _anything_ from that file. So "Run" will leave an empty
environment (right word?) if there is any error in the defs file.

On that note. It seems like the problems I've had relate directly to my
leaving noobie errors in the defs file. My confusion about how the defs
file code is Run - thinking that after a Run that throws and error
either the old environment (from the last successful Run) would remain
intact AND/OR that those lines which evaluate correctly in the new file
would be run despite some errors on other lines in that particular file
- slowed my understanding.

I believe that I do have a defs file w/errors which, on Run, does not
cause an error to display in the I-panealthough it does delete the
environment. I will try to recreate it this afternoon or evening.

As a last thought it still appears that the "#lang racket" yields better
effect than the BSL-Lists when trying follow through the TLS because
some functions shown in the TLS notes aimed at making examples and
exercises work in Scheme (eg. pair?) are not defined in the BSL-Lists.
Matt, I'm pretty sure you have reasons for recommending the BSL-Lists so
maybe I'm missing something else?

Thank you all.


Posted on the users mailing list.