User:Msiddalingaiah/Lisp

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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