Λίστες

Παράδειγμα:
'(1 2 3 4 42)
'word
'('Maria 'John 'Aliki)
Βασικές συναρτήσεις επεξεργασίας λιστών είναι οι παρακάτω:
(cons val list)
επιστρέφει τη λίστα list με πρώτο το στοιχείο val,
(car list)
επιστρέφει το πρώτο στοιχείο μιας λίστας,
(cdr list)
επιστρέφει τα υπόλοιπα (όλα εκτός από το πρώτο) στοιχεία μιας λίστας ή nil αν αυτά δεν υπάρχουν.
Με βάση τις συναρτήσεις αυτές μπορούμε να ορίσουμε πιο σύνθετες συναρτήσεις.

Length

Επιστρέφει το μήκος μιας λίστας.
(defun mylength (a) 
	(if (null a) 
		0 
		(+ (mylength (cdr a)) 1)))

Append

Ενώνει δύο λίστες.
(defun myappend (a b)
	(if (null a)
		b
		(cons (car a) (myappend (cdr a) b))))

Reverse

Αντιστρέφει μια λίστα.
(defun myreverse (a)
	(if (null a)
		nil
		(myappend (myreverse (cdr a)) (cons (car a) nil))))