.


:




:

































 

 

 

 





, FUNCTION:

(FUNCTION )

QUOTE FUNCTION . :

#f Û (FUNCTION f)

, , quote. quote -, . , , . , . ( ) , (-) .

FUNCTION. . , - :

>(defun add(x)

(function (lambda (y) (+ x y))))

ADD

>(setq add3 (add 3)); x = 3

#<Closure SPECIAL::APPLY-INTERPRETED-CLOSURE...>

>(funcall add3 5); y = 5

, .

. , , . :

>(power-of-2-generator)

>(power-of-2-generator)

>(power-of-2-generator)

...

:

(defvar *previous-power* 1)

 

(defun power-of-2-generator ()

(setf *previous-power* (* 2 *previous-power*)))

 

, , , power-of-2-generator , *previous power* .

? . . . , :

(defun make-power-of-2-generator (previous-power)

#'(lambda ()

(setf previous-power (* previous-power 2))))

, previous-power.

>(setf g1 (make-power-of-2-generator 1))

#<Closure SPECIAL::APPLY-INTERPRETED-CLOSURE...>

 

>(setf g2 (make-power-of-2-generator 10))

#<Closure SPECIAL::APPLY-INTERPRETED-CLOSURE...>

>(funcall g1)

>(funcall g2)

>(funcall g1)

>(funcall g2)

>(funcall g1)





:


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


:

:

, .
==> ...

1482 - | 1307 -


© 2015-2024 lektsii.org - -

: 0.008 .