From: Jonas Wallgren
Subject: Minimalistic Lisp
Date: 
Message-ID: <1942@majestix.ida.liu.se>
·····@kymijoki.wrs.com (Roger Rohrbach) writes:
>········@fsg.UUCP (Brian Reynolds) writes:
>> I would like to know what is the minimal set of LISP primitives
>> needed to boot-strap LISP.
>    The five elementary functions on s-expressions defined by McCarthy are
>cons, car, cdr, atom, and eq.

If you want to represent cons cells as pairs of memory cells then maybe you
can't reduce that set, but if you dont care about the representation you don't
need all those functions.

If you have function abstraction (lambda; written as a "\" below) and
application you can define:

	cons=\a.\d.\f.fad
	car =\p.p(\a.\d.a)
	cdr =\p.p(\a.\d.d)

It's also possible to define conditional expressions and truth values using
lambda expressions.

So, what do you need? Function abstraction, application, atom, eq.

-------------------------------------------------------------------------------
Jonas Wallgren                                 |                 ···@IDA.LiU.SE
Department of Computer and Information Science |
Linkoping University                           |-------------------------------
SE-581 83  Linkoping                           |
Sweden                                         |(\x.xx)(\x.x):(forall a.(a->a))
-------------------------------------------------------------------------------