


LISP(1)             UNIX Programmer's Manual		  LISP(1)



NAME
     lisp - lisp interpreter

SYNOPSIS
     lisp

DESCRIPTION
     _L_i_s_p 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 UNIX lisp in use at UCB,
     to a subset of MIT's MACLISP.

     The following functions are provided as machine code:

     Lambda functions:

     atom	  dptr	       load	    putd	 rplacd
     bcdp	  drain        null	    putprop	 set
     car	  eq	       numberp	    ratom	 terpr
     cdr	  equal        outfile	    read
     close	  eval	       patom	    readc
     concat	  get	       pntlen	    retbrk
     cons	  getd	       portp	    return
     cont	  infile       print	    rplaca

     Nlambda functions (possibly simulating ones which are nor-
     mally lambdas):

     add1	  difference   onep	    quotient	 zerop
     and	  exit	       or	    reset
     break	  go	       plus	    setq
     cond	  minus        product	    sub1
     cond	  mod	       prog	    sum
     def	  not	       quote	    times

     The following functions are provided as lisp code (and at
     the moment must be read in by saying (load 'auxfns):

     add	  copy	       length	    numbp
     append	  defevq       linelength   pp_etc
     apply*	  defprop      member	    reverse
     charcnt	  defprop      memcar	    terpri
     chrct	  diff	       memcdr
     conc	  last	       nconc

     All of the above functions are documented in the ``Harvard
     Lisp Manual.''

     The following functions are provided as in MIT's MACLISP.

     alphalessp   do	       mapc	    setsyntax



Printed 11/26/99						1






LISP(1)             UNIX Programmer's Manual		  LISP(1)



     apply	  explodec     mapcar	    throw
     ascii	  exploden     prog2	    tyi
     catch	  funcall      progn	    tyipeek
     defun	  implode      progv	    tyo

     ``Hairy control structure'' is provided by the Nlambda
     (process _c_o_m_m_a_n_d _i_n_p_o_r_t _o_u_t_p_o_r_t) where _c_o_m_m_a_n_d is an atom
     whose print name is some command that you would wish typed
     at the terminal, e.g. ``neqn | nroff -ms''; where _i_n_p_o_r_t and
     _o_u_t_p_o_r_t are atoms which will be bound to port descriptors
     for use in communication with the subprocess.  _I_n_p_o_r_t is a
     port to a pipe which will be read by the subprocess as its
     standard input. If _I_n_p_o_r_t is _n_i_l (or not present), the sub-
     process inherits the standard input, and lisp waits for the
     subprocess to die.  If _I_n_p_o_r_t is the atom _t lisp continues
     without waiting.

AUTHORS
     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.

SEE ALSO
     Harvard UNIX Lisp Manual
     MACLISP Manual
     UCB Franz Lisp Manual

BUGS
     The status bits for _s_e_t_s_y_n_t_a_x are not the same as for
     MACLISP.

     Closing down a pipe doesn't always seem to work correctly.

     Arrays are not implemented in version 1.




















Printed 11/26/99						2



