|  | ANSI Common Lisp  5 Data and Control Flow  5.3 Dictionary of Data and Control Flow 
 
 Syntax:
funcall
function &rest args
   {result}* 
Arguments and Values:
function - a function designator.
args - arguments to the function.
 
results - the values returned by the function.
 
Description:
funcall applies function to args.
If function is a symbol,
it is coerced to a function as if by
finding its functional value in the global environment.
Examples:
 (funcall #'+ 1 2 3)  6
 (funcall 'car '(1 2 3))  1
 (funcall 'position 1 '(1 2 3 2 1) :start 1)  4
 (cons 1 2)  (1 . 2)
 (flet ((cons (x y) `(kons ,x ,y)))
   (let ((cons (symbol-function '+)))
     (funcall #'cons
              (funcall 'cons 1 2)
              (funcall cons 1 2))))  (KONS (1 . 2) 3) 
Exceptional Situations:
An error of type undefined-function should be signaled if function 
is a symbol that does not have a global definition as a function
or that has a global definition as a macro or a special operator.
See Also:
apply, function, Section 3.1 Evaluation
Notes:
 (funcall function arg1 arg2 ...)
 ==(apply function arg1 arg2 ... nil)
 ==(apply function (list arg1 arg2 ...))
 
The difference between funcall and an ordinary function call is that
in the former case the function is obtained by ordinary evaluation
of a form, and in the latter case it is obtained by the special 
interpretation of the function position that normally occurs.
 
Allegro CL Implementation Details:
 None. |