lambdaって何ですか?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGこれって何ですか?
どう見ても無名関数とかそういう物にした見えないんですが、、
$f = sub { print "hello@` lambda!\n"; }; # Perlの無名関数
"lambda"ってキーワードに惑わされてるのかも。
0002デフォルトの名無しさん
NGNGcall/ccとペア
0003SAGE
NGNGプログラム言語でラムダっていったら、↓これ関係?
http://members.tripod.co.jp/nbz/ref/lambda.html
0004いつでもどこでも名無しさん
NGNG無名関数にしかすぎないっていえばそれもそのとおり。
歴史的経緯なのです。carと cdrのような。
0005デフォルトの名無しさん
NGNG「環境」も一緒に入ってるってところが、ただの無名関数と違う。
00061
NGNG>>5
もしかしてそれはclosure(クロージャ)ってやつですか?
またまたPerlですけど、、、
sub make_closure
{
my $message = shift; # 引数を得る
# make_closureの変数をcloseしている??
return sub { print "hello@` $message\n"; };
}
$c1 = &make_closure( "closure" );
$c2 = &make_closure( "クロージャ" );
&$c1();
&$c2();
0007デフォルトの名無しさん
NGNGあったら@`ずっとわかりやすく@`脅迫感も少なかったろう.しかしこの習慣は
強固に防御されている.この記法は数理論学者Alonzo Church(1941)の数学
形式論@`λ算法から取り込まれた.Churchは関数と関数作用の概念を研究する
ための厳密な基盤としてλ計算を考え出した.λ計算はプログラム言語の意味論
を数学的に研究する基本的道具になっている.
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGf = lambda { print "hello" }
f.call
って感じで。
0010デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています