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