Wikipedia: Lisp

Primitives

edit

Quote

edit

Quote defers evaluation:

(quote (+ 1 4)) ; returns the list (+ 1 4), not 5

' is shorthand:

'(+ 1 4)

Set assigns the value of the first argument to the value of the second argument:

(set 'x 1)  ; sets the symbol x to value 1
(set (quote x) 1) ; same thing
(set 'y 'x) ; sets the symbol y to symbol x
(set y 2)   ; x now has value 2

Setq is a synonym for (set '):

(setq x 1)  ; sets the symbol x to value 1

Lambda

edit

Lambda creates a function object:

(set 'f (lambda (a b) (+ a b)))

Defun

edit

Defines a function:

(defun funny (a b) (+ a b))

Funcall

edit

Calls a function object with known number of arguments:

(funcall f 4 5) ; returns 9

Apply

edit

Apply calls a function object. The arguments to the function are supplied as a list:

(apply f '(2 3)) ; quote the list to avoid evaluating the arguments
(apply f (quote (2 4))) ; same thing

Function

edit

Function gets the function object bound to a name:

(function funny) ; returns function object
#'funny          ; same thing
(set 'g (function funny))
(apply g '(5 6)) ; returns 11
(apply (function funny) '(7 8)) ; returns 15