#### 5.3.7 funcall [Function] ¶

`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] , function, 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.