2.7.4. Funktionsapplikation

Um eine Funktion auf Argumente anzuwenden, gibt es die allgemeinen Formen funcall und apply. Bei funcall werden die Argumente wie bei einem Funktionsaufruf auf derselben Listenebene, in der das funcall steht, übergeben. bei apply werden die Funktionsargumente als Liste übergeben.

Es sollte ergänzt werden, dass die ersten Funktionsargumente bei apply wie bei funcall auch einzeln übergeben werden können, allerdings muss das letzte übergebene Argument im Unterschied zu funcall eine Liste sein:

;;; Aufruf einer Funktion mit funcall:

(funcall #'+ 3 4 5) ;; -> 12

;;; Das Gleiche als Applikation einer Funktion auf eine Liste von
;;; Argumenten:

(apply #'+ '(3 4 5)) ;; -> 12

;;; dieser Ausdruck ist äquivalent mit allen folgenden Ausdrücken:

(apply #'+ 3 '(4 5)) ;; -> 12

(apply #'+ 3 4 '(5)) ;; -> 12

(apply #'+ 3 4 5 '()) ;; -> 12

results matching ""

    No results matching ""