Sather Lisp evaluates a list by first evaluating its first element (which must evaluate to a function) and then applying the function to the remaining list. Whether the arguments are evaluated or not depends on the function; e.g., quote (') never evaluates its (single) argument, but setq evaluates only its second argument, and + evaluates all its arguments, etc. Symbols evaluate to their bound values, which may be assigned using set or setq. Initially, they evaluate to nil. Numbers, strings and functions evaluate to themselves. Truth values are denoted by the empty list (i.e., nil) and non_nil values. The empty list (nil) stands for "false", and any non_nil value stands for "true". Usually the predefined symbols nil and t (which evaluate to the empty list () and t, respectively) are used to represent "false" and "true". In order to avoid confusion, they shouldn't be redefined. If they are, (setq nil ()) and (setq t 't) re_establishes their default values.
1234 ^ 1234 "hello world" ^ "hello world" (+ 1 2 3 4 5 6 7 8 9 10) ^ 55 '(a . b) ^ (a . b) car ^ [car] ([...] denotes functions) (cons 'a 'b) ^ (a . b) (car (cons 'a 'b)) ^ a (cdr (cons 'a 'b)) ^ b (cdr '(a b)) ^ (b) (setq a 4/6) ^ 2/3 a ^ 2/3 (lambda (x) (+ x 1)) ^ [((+ #0 1))] (#i denotes argument no. i) ((lambda (x) (+ x 1)) 1) ^ 2 (setq inc (lambda (x) (+ x 1))) ^ [inc] (inc 1) ^ 2