.ta 1.2i 2.4i 3.6i 4.8i 6.0i
is a provisional lisp interpreter.
It only runs in eval mode. Built in functions are named
in lower case, and case is distinguished.
It is being transmuted from a subset of lisp
as provided by the Harvard \s-2UNIX\s0 lisp in
use at \s-2UCB\s0, to a subset of \s-2MIT\s0's \s-2MACLISP\s0.
The following functions are provided as machine code:
.if n .ta 13n 26n 39n 52n 65n
atom dptr load putd rplacd
bcdp drain null putprop set
car eq numberp ratom terpr
Nlambda functions (possibly simulating ones which are normally lambdas):
.if n .ta 13n 26n 39n 52n 65n
add1 difference onep quotient zerop
The following functions are provided as lisp code (and at the moment
must be read in by saying (load 'auxfns):
.if n .ta 13n 26n 39n 52n 65n
append defevq linelength pp_etc
apply* defprop member reverse
charcnt defprop memcar terpri
All of the above functions are documented in the ``Harvard Lisp Manual.''
The following functions are provided as in \s-2MIT\s0's \s-2MACLISP\s0.
.if n .ta 13n 26n 39n 52n 65n
alphalessp do mapc setsyntax
apply explodec mapcar throw
catch funcall progn tyipeek
``Hairy control structure'' is provided by the Nlambda
(process\ \fIcommand\ inport\ outport\fR)
is an atom whose print name is some command that you would wish typed
at the terminal, e.g. ``neqn\ |\ nroff\ \-ms'';
are atoms which will be bound to port descriptors for use in
communication with the subprocess.
is a port to a pipe which will be read by the subprocess as
is \fInil\fR (or not present), the subprocess inherits the standard
input, and lisp waits for the subprocess to die.
lisp continues without waiting.
Originally written by Jeff Levinsky, Mike Curry, and John Breedlove.
Keith Sklower made it work and is maintaining the current version.
The garbage collector was implemented by Bill Rowan.
Harvard \s-2UNIX\s0 Lisp Manual
`UCB Franz Lisp Manual, Version 1 (in preparation)'
are not the same as for \s-2MACLISP\s0.
down a pipe doesn't always seem to work correctly.
Arrays are not implemented in version 1.