【Lua】組み込み系言語総合 その4【Squirrel】
■ このスレッドは過去ログ倉庫に格納されています
0331デフォルトの名無しさん
2011/06/25(土) 08:51:11.14このスレより関数型言語スレの話題だと思うけど、
fact(x) = ... fact(x - 1) ...
みたいな感じで、再帰がある関数は、自分自身の定義の中に自分自身を使うわけだよね?
で、数学的に厳密な「定義」が必要な場合とか、循環定義は困るので、
fact_norec(f)(x) = ... f(x - 1) ...
みたいにして、
Y(fun) = fun(Y(fun))
(↑この定義ではここで循環定義を使っちゃってるけど、λ計算という理論では
循環定義のないものを定義できる。)
という「Yコンビネータ」を使って、
fact(x) = Y(fact_norec)
みたいに定義できる、という仕掛け。
■ このスレッドは過去ログ倉庫に格納されています