Skip to main content

funcall

funcall Function

Syntax:

funcall function &rest args → {result}*

Arguments and Values:

function—a function designator .

argsarguments 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
(defun foo (x y) (cons x y)) → FOO
(foo 1 2)(1 . 2)
(flet ((foo (x y)(kons ,x ,y)))
(let ((foo (symbol-function ’+)))
(funcall #’foo
(funcall ’foo 1 2)
(funcall foo 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.

info

We fixed the examples so that it is conforming, by not shadowing cons in the flet form.

Expanded Reference: funcall

tip

TODO: Please contribute to this page by adding explanations and examples

(funcall )