Functions are normally associated with symbols, the name of the symbol being the same as the name of its associated function. Each symbol has a special function cell (this is totally separate from the symbol's value as a variable -- variables and functions may have the same name without any problems occurring) which is used to store the function's definition, either a lambda expression (see section Lambda Expressions) or a subr (C code) object.
The evaluator knows to indirect through the function value of a symbol in any function call (see section Function Call Forms) so the normal way to call a function is simply write its name as the first element in a list, any arguments making up the other elements in the list. See section List Forms.
The functions and special forms which take functions as their arguments
(i.e. funcall) can also take symbols. For example,
(funcall 'message "An example") == (message "An example")
(symbol-function 'symbol-function)
=> #<subr symbol-function>
t if the symbol symbol has a
non-void value in its function cell, nil otherwise.
(fboundp 'setq)
=> t
This function is rarely used, see section Defining Functions.
Go to the first, previous, next, last section, table of contents.