, . , , , , . , , . . .
, . . APPLY FUNCALL.
APPLY : , .
APPLY:
(apply fn )
Û
(fn x1, x2,..., xn),
=(x1 x2... xn)
:
>(apply + (2 3))
>(setq f +)
+
>(apply f (2 3))
FUNCALL APPLY, , :
(funcall fn x1 x2... xn)
Û
(fn x1 x2... xn)
:
>(setq f +)
>(funcall f 2 3)
MAP-. MAP- , () , . MAP- MAP, :
(MAPX fn l1 l2... lN)
l1... lN , fn N . , MAP- -, .. fn :
(MAPX fn )
MAP- , , cdr .
6.1 MAP-.
.6.1. Map-
mapc | mapcar | mapcan | |
cdr | mapl | maplist | mapcon |
mapcar fn xi , :
(mpcar fn (x1 x2... xN))
Û
(list (fn x1) (fn x2)... (fn xN))
:
>(mapcar list (1 2 3))
((1) (2) (3))
maplist mapcar, , cdr . :
>(maplist list (1 2 3))
(((1 2 3)) ((2 3)) ((3)))
mapcan mapcon mapcar maplist, , :
|
|
(mapcan fn (x1 x2... xN))
Û
(nconc (fn x1) (fn x2) (fn x3)... (fn xN))
:
>(mapcan list (1 2 3))
(1 2 3)
>(mapcon 'list '(1 2 3))
((1 2 3) (2 3) (3))
NIL, . mapcan mapcon : , , ( ) . remove-if ( , ) :
(defun remove-if (funarg list)
(mapcan #(lambda (elem)
(if (funcall funarg elem) nil
(list elem)))
list))
(1 a 2 c 3 g) remove-if:
>remove-if numberp (1 a 2 c 3 g))
(a c g)
mapc mapl mapcar maplist, . , :
(mapc fn )
Û
(prog2 (mapcar fn ) )
:
>(mapc list (1 2 3))
(1 2 3)
>(mapl list (1 2 3))
(1 2 3)
mapc mapl :
>(defun f (u v) (set u v))
F
>(mapc f (a b c) (1 2 3))
(A B C)
>b