[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
In a general sense, a function is a rule for carrying on a computation given several values called arguments. The result of the computation is called the value of the function. The computation can also have side effects: lasting changes in the values of variables or the contents of data structures.
Here are important terms for functions in Emacs Lisp and for other function-like objects.
car
or append
. These functions are also called
built-in functions or subrs. (Special forms are also
considered primitives.)
Usually the reason we implement a function as a primitive is either because it is fundamental, because it provides a low-level interface to operating system services, or because it needs to run fast. Primitives can be modified or added only by changing the C sources and recompiling the editor. See E.5 Writing Emacs Primitives.
command-execute
can invoke; it
is a possible definition for a key sequence. Some functions are
commands; a function written in Lisp is a command if it contains an
interactive declaration (see section 21.2 Defining Commands). Such a function
can be called from Lisp expressions like other functions; in this case,
the fact that the function is a command makes no difference.
Keyboard macros (strings and vectors) are commands also, even though they are not functions. A symbol is a command if its function definition is a command; such symbols can be invoked with M-x. The symbol is a function as well if the definition is a function. See section 21.1 Command Loop Overview.
t
if object is any kind of function,
or a special form or macro.
t
if object is a built-in function
(i.e., a Lisp primitive).
(subrp 'message) ; |
t
if object is a byte-code
function. For example:
(byte-code-function-p (symbol-function 'next-line)) => t |
(min . max)
. min is the minimum number of
args. max is the maximum number or the symbol many
, for a
function with &rest
arguments, or the symbol unevalled
if
subr is a special form.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |