ALBERGA@IBM.COM (Cyril Alberga) (10/10/88)
Here is a brute-force expression which prints itself. This was in LISP370, circa 1978. (PRINT ( (LAMBDA (X Y) (SEQ (RPLACA (CDAR (CDDADR X)) (COPY Y)) (RPLACA (CDADR (CADADR X)) (COPY Y)) (EXIT X) ) ) (COPY "(PRINT ( (LAMBDA (X Y) (SEQ (RPLACA (CDAR (CDDADR X)) (COPY Y)) (RPLACA (CDADR (CADADR X)) (COPY Y)) (EXIT X) ) ) (COPY "NIL) "NIL ) ) ) "(PRINT ( (LAMBDA (X Y) (SEQ (RPLACA (CDAR (CDDADR X)) (COPY Y)) (RPLACA (CDADR (CADADR X)) (COPY Y)) (EXIT X) ) ) (COPY "NIL) "NIL ) ) ) ) The uses of copy were to keep it from modifying itself. Obviously, shared sub-structure could be used to shorten the representation. Cyril N. Alberga