8-Bit Software
Back to Electron Games

LISP

 

 

Professional, Originally Released On Cassette Only

 

Game Type††††††††† : Computer Language

Author†††††††††††† : Gillian Cattell and Arthur Norman

Standalone Release(s)†† : 1984: LISP (Cassette), Acornsoft, £12.95

Compilation Release(s) : None

Stated compatibility††† : Electron

Actual compatibility††† : Electron, BBC B, B+ and Master 128

Supplier††††††††††† : ACORNSOFT, Betjeman House, 104 Hills Road, CAMBRIDGE CB2 1LQ

††††††††††††††††† † Tel: (0223) 316039

Disc compatibility†††† : CDFS E00, DFS E00

 

 

Instructions

This pack contains the Acornsoft LISP system on cassette. Acornsoft LISP for the Acorn Electron consists of 5.5K of machine code interpreter, plus 3K of initialised LISP workspace containing utilities and constants which can be deleted to make extra space if not required.

 

The system features a number of extensions to basic LISP including PEEK, POKE, CALL and VDU, to provide easy interface with the Acorn Electron MOS and machine-code programs, improved interactive control structures using LOOP, WHILE and UNTIL functions, and disc input/output control functions.

 

The 200-page manual LISP on the BBC Microcomputer is a complete guide to Acornsoft LISP and is available separately. The manual includes a section on programming for the complete beginner, and contains useful program examples, including one which works out the best route between two towns on a map.

 

LISP functions

ADD1, AND, APPLY, ASSOC, ATOM, BLANK, CALL, CAR, CDR, CAAR, CADR, etc, CAAAR, CAADR, etc, CHARP, CHARS, CLOSE, COND, CONS, CR, CHARCOUNT, CHARACTER, DEFUN, DIFFERENCE, DOLLAR, EDIT, EOF, EQ, ERROR, ERRORCOUNT, ERRORSET, VAL, EXPLODE, FSUBRP, GET, GETCHAR, GREATERP, IMPLODE, LAMBDA, LESSP, LINEWIDTH, LIST, LISTP, LOAD, LOOP, LPAR, MAP, MAPC, MESSOFF, MESSON, MINUS, MINUSP, NIL, NOT, NULL, NUMBERP, OBLIST, ONEP, OPEN, OR, ORDINAL, PEEK, PERIOD, PLIST, PLUS, POKE, PRIN, PRINC, PRINT, PRINTC, PROGN, PUT, QUOTE, QUOTIENT, READ, READLINE, RECLAIM, REMAINDER, REMPROP, RPAR, RPLACA, RPLACD, *, SAVE, SEEK, SET, SETQ, SUB1, SUBRP, SPRINT, T, TIMES, UNDEFINED, UNTIL, VDU, WHILE, WRITE, WRITEO, XTAB, ZEROP.

 

Contents

LISP

ROUTE-M (This file can only be loaded from within LISP)

 

Loading

To load the demonstration image, which contains a LISP program to work out the best route between towns on a map, type†††††††††††††††††††††††

†† (LOAD 'ROUTE-M)

 

from within LISP. You will now find that entering

†† (FIND-ROUTE 'CAMBRIDGE 'OXFORD)

 

will return a list giving the distance between the two cities, and the shortest route between them.

 

 

Instructions' Source†† : LISP, Cassette (Acornsoft) Back and Inner Inlay

 

Review (Electron User) - "LISP - The Language That Strikes Like Lightning"

LISP, developed around 1960 by John McCarthy and others at the Massachusetts Institute of Technology in America, is one of the oldest computer languages still in use. His main objective was to produce a powerful language for defining and transforming functions. LISP was designed to manipulate abstract symbols called atoms and combinations of symbols called lists. It is a LISt Processing language.


Perhaps the most publicised use of LISP has been in the field of artificial intelligence research. The expressive power of the language was recognised by workers who were wrestling with the difficult symbolic manipulation problems involved. Programs have been written that hold conversions, write stories for
children and summarise text.


Most mainframe computers support LISP and now a few micros as well. There is no generally accepted standard, so as a result there are many dialects around. However, adapting LISP to run on another machine is usually straightforward, making the language fairly portable.


Acornsoft's variant is available on cassette or ROM cartridge. The cassette version is the one considered here. The ROM cartridge will have all the facilities offered by the cassette version, plus a few extra, and a lot more memory.


The cassette and manual are sold separately, which seems a little strange. Unless you are already an expert LISP programmer - and not many people are - then neither is much use without the other. Price of the package is about £23.

 

Large scale implementations may contain hundreds or even thousands of built-in functions. Consequentially a small micro such as the Electron cannot hope to provide all of them, so only the bare essentials are built into Acornsoft's LISP.
However this should be sufficient. Fortunately, many of the standard utilities can be written in LISP itself and appendix B in the manual lists a few of these.


Since many of the functions not provided would only be used occasionally and may have specialised uses, these can be typed in as and when needed for each application.

Acornsoft LISP has a few extra functions not normally found in other systems. These are to allow the use of the Electron's excellent graphics and sound capabilities. One of the most powerful is the most VDU command which provides an easy interface with the Electron's machine operating system.

 

LISP takes about four minutes to load. It has 5.5k of machine code interpreter and 3k of initialised LISP workspace containing utilities and constants. These can be deleted, if not required, to gain extra memory. When loading is complete the user is asked to select a mode - either 3, 4, 5 or 6. Once one has been selected it is not possible to change to another using MODE n, so if you want to use graphics or the 80 column mode 3, you must start up in the correct mode.

 

There are two main questions to be asked of LISP:

* What can you do with it?

* How easy is it to use?

 

Chapter 23 of the manual answers the first question - eleven applications are listed demonstrating its use. The programs are not complete, but do provide the building blocks for constructing much larger LISP applications, and the user is encouraged to develop them further. The examples include: Sorting a list into alphabetical order, arbitrary precision arithmetic (how to cope with very large numbers), a LISP pretty-printer (used to display large pieces of LISP structure, spreading its output over many lines and using indentation to make it more legible), an animal guessing game (you think of an animal and the Electron has to try and guess it), a route finding program (also on the cassette), graphic displays (how to create pictures) and mazes and dungeons (an adventure game).


The answer to the second question is entirely subjective and everyone will have their own opinion. I have to disagree with the manual which states, "It provides a complete introduction to LISP and assumes no previous knowledge of the language", and that "LISP is very easy to learn..."


LISP seems very strange and confusing at first, operating on lists and atoms, recursion being very common. Unlike Basic, you need to know and understand a large proportion of LISP before you can even think of writing your first simple program, and this is the main stumbling block.


LISP operates on the "lightning principle" - the concepts strike you suddenly when you are almost ready to give up. Once you have been struck, everything falls into place. Strength, stamina and perseverance are required.


Acornsoft's LISP is an excellent package for anyone interested in programming and computer languages. It will teach pattern recognition, and recursion will become second nature.


A word of warning though. It is not for the absolute beginner. Be prepared for a struggle, and remember the "lightning principle". One last note: If you are unsure whether to invest in LISP, try to get hold of The Little LISPer by Daniel P. Friedman (I borrowed it from the local library!).


This is not a manual on how to use LISP on the BBC or Electron, but it explains the structure, principles and concepts involved in a very simple and amusing manner. You do not need LISP or even a computer to understand and appreciate it. I think you will find LISP fascinating.

Roland Waddilove, ELECTRON USER 2. 4