funcall

Allegro CL
Home Previous Up Next Table of Contents Index
ANSI Common Lisp 5 Data and Control Flow 5.3 Dictionary of Data and Control Flow

5.3.7 funcall Function

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.

Home Previous Up Next Table of Contents Index
© Franz Inc. All Rights Reserved - File last updated 2022年07月25日

AltStyle によって変換されたページ (->オリジナル) /