.


:




:

































 

 

 

 





, . , , , , . , , . . .

, . . 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





:


: 2015-10-01; !; : 456 |


:

:

, .
==> ...

1470 - | 1341 -


© 2015-2024 lektsii.org - -

: 0.047 .