2011/05/15

クロージャ



いままで、「ふーん」くらいにしか思ってなかったけど、すごく分かりやすい解説を見つけたのでメモる。


猿でもわかるクロージャ超入門


xyzzy でやってみる。



;; 問題:呼び出すたびに、1,2,3,...を返すような関数 f( )を定義せよ。
(defun outer ()
(let ((x 0))
(defun inner ()
(incf x))))

(setq f (outer))

;; test
(funcall f)
;=>1

(funcall f)
;=>2

(funcall f)
;=>3


クロージャ、「使える!」と思った。





Related Posts Plugin for WordPress, Blogger...

0 コメント :

コメントを投稿