User:Msiddalingaiah/Lisp
From Wikipedia, the free encyclopedia
Wikipedia: Lisp
Primitives
Quote
Quote defers evaluation:
(quote (+ 1 4)) ; returns the list (+ 1 4), not 5
' is shorthand:
'(+ 1 4)
Set
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
Lambda creates a function object:
(set 'f (lambda (a b) (+ a b)))
Defun
Defines a function:
(defun funny (a b) (+ a b))
Funcall
Calls a function object with known number of arguments:
(funcall f 4 5) ; returns 9
Apply
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
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