(apply funkcja lista)
Wykonuje funkcję na liście
Funkcja może być predefiniowana, lub funkcja zdefiniowana przez programistę. Jej nazwa musi być poprzedzona symbolem ' .
Drugi parametr musi być listą
Funkcja jest najbardziej przydatna gdy listę budujemy dynamicznie.
przykład:
(defun Hex2Dec (stg / cnt len dgt val lst)
(setq cnt 1
len (strlen stg)
)
(repeat len
(setq dgt (strcase (substr stg cnt 1))
val (if (> (ascii dgt) 64)
(- (ascii dgt) 55)
(atoi dgt)
)
lst (cons (* val (expt 16 (- len cnt))) lst)
cnt (1+ cnt)
)
)
(apply '+ lst)
)
(Hex2Dec "ABCD" )
Zapis
(apply '+ lista)
Jest równoznaczny z
(eval (append (list + ) lista) )