- Lisp Scheme Part39
308 :デフォルトの名無しさん[sage]:2014/11/14(金) 07:22:19.77 ID:anfjtx4T - (define robot
(let ((s 'jiro)) (lambda (c) (cond ((eq? c 'fight) (set! s 'kikaider)) ((eq? c 'normal) (set! s 'jiro)) ((eq? c 'state) (display s))))))
| - Lisp Scheme Part39
309 :デフォルトの名無しさん[sage]:2014/11/14(金) 07:38:43.01 ID:anfjtx4T - (define robot
((lambda(s) (lambda (c) (cond ((eq? c 'fight) (set! s 'kikaider)) ((eq? c 'normal) (set! s 'jiro)) ((eq? c 'state) (display s))))) 'jiro)) これと等価で、最初のlambdaがsをもつ環境を作り、2番目のlambdaはクロージャとして その環境を保持している。
|
|