Special atoms are true and false (the result of a test), and nil (meaning "no answer"). nil is not the empty list, but satisfies (empty? nil) and acts like the empty list in some functions.
(quote sexpr) prevents evaluation of sexpr. Syntactic sugar for this: 'sexpr.(first list) returns the first element of list, or nil if the list is empty.(rest list) returns the list that remains when the first element is removed, or nil if the list is empty.(second list) returns the second element of list, or nil if the list has fewer than two elements.(cons sexpr list) returns a list with sexpr added as the new first element.(empty? list) tests whether list is the empty list, or is nil. Returns true or false.(= arg1 arg2 ...) tests whether any number of arguments are equal. Returns true or false.(nil? sexpr) tests whether sexpr is nil. Returns true or false.(list? sexpr) tests whether sexpr is a list. Returns true or false.(count list) returns the number of top-level elements in list(list sexpr1 sexpr2 ... sexprN) returns a list of its arguments.(concat list1 list2 ... listN) returns a list of the elements in all of its arguments.(eval sexpr) returns the result of evaluating its argument.(eval (quote (f args))) is equivalent to (f args).