Seguinte: Tipos Aglomerados Acima: Listas Anterior: Funções Úteis
Índice remissivo

Listas de Argumentos

Sendo as listas uma das estruturas básicas do Lisp, a linguagem permite aplicar funções directamente a listas de argumentos através da função apply. Esta é em tudo idêntica à função funcall, mas em vez de ter os argumentos da função a aplicar como argumentos da função funcall, tem-nos numa lista, i.e.:

(funcall func arg-1 arg-2 ...arg-n) <=> 
(apply func (list arg-1 arg-2 ...arg-n))

Na linguagem Common Lisp, a função apply é uma fusão entre a função funcall e a função apply primitiva, pois é da forma:

(apply func arg-1 arg-2 ...rest-args)

Nesta aplicação o último argumento rest-args é uma lista com os restantes argumentos. Desta forma, pode-se escrever qualquer das seguintes equivalências:

(funcall func arg-1 arg-2 ...arg-n)  <=> 
(apply func (list arg-1 arg-2 ...arg-n))  <=> 
(apply func arg-1 (list arg-2 ...arg-n))  <=> 
(apply func arg-1 arg-2 ...(list arg-n))  <=> 
(apply func arg-1 arg-2 ...arg-n nil))


Copyright António Leitão, 1995