apohllo.pl
więcej niż strona domowa...
 

Lekcja 13

Spis treści | Lekcja 12 | Lekcja 14

13. Jawne wywoływanie funkcji

W LISP każda forma postaci (f list-arg) jeśli nie jest formą specjalną, traktowana jest jak wywołanie funkcji f z listą argumentów w postaci list-arg. Istnieją również inne sposoby wywoływania funkcji oraz w szczegolności domknięć leksyklanych. Są to funcall oraz apply. Różnią się sposobem traktowania listy argumentów wywołania.

13.1 funcall

Instrukcja ta ma postać (funclall f list-args). Wszystkie argumenty występujące w list-args są przekazywane do f tak jak w wywołaniu (f list-args).

13.1

(funcall #'+ 3 4)                 =>  7

#’symbol jest skrótem instrukcji (function symbol). Zagadnienie to omówione jest w rozdziale poświęconym notacji lambda.

13.2 apply

Instrukcja ta działa podobnie jak funcall przy czy ostatni element listy list-args powinien być listą. Ten element jest dołączany do wcześniejszych argumentów, tak więc zapis (apply f list-args ‘(arg1 arg2 …)) odpowiada (funcall f list-args arg1 arg2 …).

13.2

(apply #'+ 3 4 '(3 4))            =>  14

Spis treści | Lekcja 12 | Lekcja 14

lisp | Opublikowano 12:45 29-11-2010. Ostatnia modyfikacja 12:45 29-11-2010 |
comments powered by Disqus