; Boot code: LISP Version 5. 17 February 2004

(new (language a) (language a)) 
(new (not s) (if s Ø 'true)) 
(new (list s) (from s)) 
(new (map f s) 
	(if s (cons (f (car s)) (map f (cdr s))) 
		Ø
	)
) 
(new (fold f i s) 
	(if s (f (car s) (fold f i (cdr s)))
		i
	)
) 
(new (+ s) (fold (lambda (a b) (+ a b)) 0 (from s))) 
(new (* s) (fold (lambda (a b) (* a b)) 1 (from s))) 
(new (equal a b) 
	(if (atom a) (= a b) 
		(atom b) (= a b) 
		(equal (car a) (car b)) (equal (cdr a) (cdr b)) 
		Ø
	)
) 
(new (member x s) 
	(if s 
			(if (= x (car s)) s 
				(member x (cdr s))
			) 
		Ø
	)
) 
(new (memberf f x s) 
	(if s 
			(if (f x (car s)) s 
				(memberf f x (cdr s))
			) 
		Ø
	)
) 
(new (/ a b) (/ a b)) 
(new (- a b) (- a b)) 
(new (% a b) (% a b)) 
(new (< a b) (if (= a b) Ø (≤ a b))) 
(new (> a b) (if (= a b) Ø (≤ b a))) 
(new (≤ a b) (≤ a b)) 
(new (≥ a b) (≤ b a)) 
(new (= a b) (= a b)) 
(new (≠ a b) (if (= a b) Ø 'true)) 
(new (apply a b) (apply a b)) 
(new (print s) (print (from s))) 
(new (atom s) (atom s)) 
(new (number s) (number s)) 
(new (cadr s) (car (cdr s))) 
(new (caar s) (car (car s))) 
(new (cddr s) (cdr (cdr s))) 
(new (cdar s) (cdr (car s))) 
(new (car s) (car s)) 
(new (cdr s) (cdr s)) 
(new (cons a b) (cons a b)) 
(new (boot-code) (boot-code)) 
(new (open-window f) (open-window f)) 

(booted '"LISP Version 5. 9 January 2004")