3.16 LISP Reader

An EVAL read loop has been chosen to drive a Standard LISP system to provide a continuity in functional syntax. Choices of messages and the amount of extra information displayed are decisions left to the implementor.

EXPR PROCEDURE STANDARD!-LISP();

BEGIN SCALAR VALUE;

   RDS NIL; WRS NIL;

PRIN2 "Standard LISP"; TERPRI();

WHILE T DO

  << PRIN2 "EVAL:"; TERPRI();

VALUE := ERRORSET(QUOTE EVAL READ(), T, T);

IF NOT ATOM VALUE THEN PRINT CAR VALUE;

TERPRI() >>;

END;

QUIT()
 
Causes termination of the LISP reader and control to be transferred to the operating system.