User:Msiddalingaiah/Lisp
Appearance
Wikipedia: Lisp
Primitives
[edit]Quote
[edit]Quote defers evaluation:
(quote (+ 1 4)) ; returns the list (+ 1 4), not 5
' is shorthand:
'(+ 1 4)
Set
[edit]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