This was one of the first languages to appear on cassette for the Electron, and at last the full implementation is available on ROM Cartridge for the Plus 1.
Priced at £29.95, it may seem expensive, but represents a considerable advance on the tape version reviewed in Electron User 2. 4 (February 1985). The Lisp cartridge takes precedence on power-up, and typing VERSION tells us that this is version 5.
Turn on the garbage collector messages and force a collection, and we will find we have 16.6k available in Mode 6. The extra memory available to the ROM based Lisp allows several enhancements - larger programs, graphics, neater recursive functions instead of loops, and less time garbage collecting.
Apart from these benefits of extra memory, how much more do you get for your well-earned money?
I knew that Lisp came on a 16k ROM and was surprised to see the cartridge contained ten example programs, including games, educational programs, utilities and graphics. I was even more surprised when I couldn't find these programs in the ROM on disassembly. Efficient packaging? Tokenising? No, the cartridge also contains a 16k serial ROM. The examples are all taken from the Acornsoft book, which must be bought separately, and are loaded by selecting the ROM filing system and *EXECing the file.
When you need, say, a sort function, this can be read from ROM as if it were typed from the keyboard, thus saving time and energy. In a language where every machine has its own dialect, Acornsoft Lisp could well set some form of standard for micro-Lisps.
There's no PROG function but Lisp being the friendly, flexible language it is, this can be defined if you simply cannot do without GOTOs. The OBLIST contains 130 identifiers, compared to 114 for the tape. Extra facilities include MODE, USR, binary operators, TIME/CLOCK functions, warm or cold start from a break, and textual error messages.
The lack of a MODE command was the only serious drawback of the cassette, which included lots of functions (ONEP, ZEROP, ADD1, SUB1, CAR/CDR combinations) which are very easily defined in Lisp. The VDU22 command can be used to change from one mode to another that use the same amount of RAM, say from 4 to 5, but not from Mode 6 to 3.
Since MODE has a delayed effect - it waits until the next 'Evaluate:' prompt is displayed - there may still be occasions when VDU22 is needed, but in general MODE is a very useful function to have.
There is, however, a serious problem with this Lisp - it is extremely difficult to get hold of. This is a great shame, because it is a superb implementation of an exceptionally interesting computer language, and 32k of ROM at this price is a real bargain.