LISP as a simple programming language

()

(1   2   3)

(a   b   (c   d)   e   (h   i))

'(1 2 3)

(list 1 2)

(new a (list 1 2))

(car a)

(cdr a)

(new (! n)
	(if (= n 0) 1
		(* n (! (- n 1)))
	)
)

(! 8)

(! 10)

(new (length s)
	(if
		(not s) 0
		(atom s) 1
		(+ 1 (length (cdr s)))
	)
)

(length '(a b c))

(new (sum s)
	(if
		(not s) 0
		(atom s) s
		(+ (car s) (sum (cdr s)))
	)
)

(sum '( 1 2 3 4 5))