路傍のプログラマ

只のプログラマが綴る愚痴と備忘録

Y-combinator

2008-11-07 17:31:32 | プログラミング
Scalaの勉強を進めていくうちに、Combinator Parserなるものが出てきて、

Combinatorってなんじゃ?とか思って調べているうちに、Y-Combinatorなるものに行き当たりました。

Y-Combinatorとは、関数の不動点を求めるモノだそうです。

すなわち、関数Fが与えられたとき、p = F(p)となるような値pを求める関数がY-Combinatorです。p = Y(F)。

2つの式からpを消せば、Y(F) = F(Y(F))。

この式から何となく想像付くかもしれませんが、このYを使えば、再帰的に定義されている関数から、再帰呼び出しをくくり出すことができるそうです。

何となく分かったような分からないような。

参考:
http://code.activestate.com/recipes/576366/
http://igeta.cocolog-nifty.com/blog/2008/03/fixpoint.html

というわけで、実際これがどう使えるのか全く不明のまま。面白いけど。

こういうのは学生時代にやっておくべきだった。

最新の画像もっと見る