- Lisp Scheme Part39
306 :デフォルトの名無しさん[sage]:2014/11/14(金) 00:44:44.18 ID:0NdzO4Gj - Schemeでしょ。順番に説明するから。
まず、 (define (f x y) (+ x y)) みたいな記法は簡便だから多用されるけど、実は、 (define f (lambda (x y) (+ x y))) の略記法だという点に注意。 で、 (define ver expr) みたいに書くと、exprを評価した値をverの値にする、と。 上のような普通の関数定義は、下の略してない記法を見れば分かるけど、 一番上に剥き出しで lambda があるわけだ。 んで、近代以降のLisp(Common LispとかScheme)は、lambda を評価すると、 手続きだけじゃなくて、その時の環境(変数名→値、という束縛の集まり)も 抱え込んだ「閉包」というものになる。 つまり、letの中にあるlambdaは、そのletによる束縛ごと、手続きになるわけ。 (let over lambdaというそのものズバリのタイトルの本があるが、まだ今読むのは 難しすぎると思う)。 (define foo (let ((x 0)) (cons (lambda () (set! x (+ x 1)) x) (lambda () (set! x (- x 1)) x) ))) foo gosh> (car foo) #<closure foo> gosh> (cdr foo) #<closure foo> これで ((car foo)) とか ((cdr foo)) とかを評価して観察してみる
|
- GCは失敗。メモリは自分で管理せよ!
751 :デフォルトの名無しさん[sage]:2014/11/14(金) 00:47:29.71 ID:0NdzO4Gj - いや、おまえがだろw
|
- 自然言語処理スレッド その4
188 :デフォルトの名無しさん[sage]:2014/11/14(金) 10:28:40.79 ID:0NdzO4Gj - プロの定義による、と一蹴されて終わりということがわかっている質問をなぜするのか?
人工知能云々以前に、バカだから、か。
|
- プログラミング雑談スレ♯+++
598 :デフォルトの名無しさん[sage]:2014/11/14(金) 10:30:45.96 ID:0NdzO4Gj - 日本でもいっくらでもある事例なんだけど、
言ってて恥ずかしくないかねぇ、こういうバカウヨってさぁ。
|
- GCは失敗。メモリは自分で管理せよ!
757 :デフォルトの名無しさん[sage]:2014/11/14(金) 10:31:42.14 ID:0NdzO4Gj - >>754 死ねよ、自分はマナーもルールも無いバカウヨは
|
- 自然言語処理スレッド その4
190 :デフォルトの名無しさん[sage]:2014/11/14(金) 10:59:07.21 ID:0NdzO4Gj - 東ロボの話してるやつはどう見てもアマチュア以前だがな
|
- 【毛の壁】脱アルゴリズム宣言【FXST】
252 :デフォルトの名無しさん[sage]:2014/11/14(金) 16:06:08.00 ID:0NdzO4Gj - 妄想は妄想を呼ぶ、という奴だな >>251 はw
|
- Lisp Scheme Part39
314 :デフォルトの名無しさん[sage]:2014/11/14(金) 18:14:51.39 ID:0NdzO4Gj - デファン
|
- GCは失敗。メモリは自分で管理せよ!
764 :デフォルトの名無しさん[sage]:2014/11/14(金) 22:43:01.55 ID:0NdzO4Gj - 巣に帰れ
|