A Lisp in Basic

What a combination of two of very influential languages. In this case, by Randy Beer in 1981 and recently ported to Tandy Basic by Nino Ivanov.

From the Readme:

The source I used was this:

The issues of March and April of this magazine (particularly March) were the original publishing place of his code:

And here’s Randall Beer himself:

Note that the listing has all optional spaces removed so that I could fit both the interpreter and 1100 (!) cons cells into 16K (!!) of memory

via the discussion on HN


I briefly considered porting this to the Commodore PET, but then discovered a quite extensive use of IF … ELSE and event IF ELSE constructs. Since there isn’t an ELSE clause in Commodore BASIC, this really involved switching most of the logical flow. (“ELSE” is such a useful construct and probably the most dearly felt omission in Commodore BASIC, of which there are some. Probably not so much when writing code of your own, but especially when it comes to porting code.)

Sort off topic, but I looked at the March issue and it’s notable that I couldn’t find the article, and it’s notable because the issue is over 440 pages long(!!).

I think even PC magazine didn’t quite hit those heights (and PC magazine was pretty big). BYTE wasn’t even this big.

It’s also a testament to the size of the TRS-80 culture. I don’t know if simply nobody bothered to try and compete with 80 Micro, or what. In contrast, the Apple/Commodore/Atari world was much more segregated. Despite their popularity, none of the individual magazines approached the size of this one.

It is a very packed magazine! (I found the article on p176 of the March '83 issue - and it’s mentioned in the contents page. I wonder if you somehow picked the wrong issue?)