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
というわけで、実際これがどう使えるのか全く不明のまま。面白いけど。
こういうのは学生時代にやっておくべきだった。
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
というわけで、実際これがどう使えるのか全く不明のまま。面白いけど。
こういうのは学生時代にやっておくべきだった。