上記記事の内のコードでは、ラムダ式で再帰を実現するために、自分自身が格納される変数を「キャプチャ」しています。しかし、それだけがすべてではありません。
もう1つ、「引数に取る」という方法があります。しかも都合の良いことに、この方法にはお決まりのパターンが存在するのです。次のコード内のFixという関数がその役を果たします。
このFixは不動点演算子などと呼ばれるものになります。3年くらい前に、はてなダイアリー界隈で流行したので、ググれば今でもいろいろ出てきます。
- さあ、Yコンビネータ(不動点演算子)を使おう! – よくわかりません
- ラムダ計算とチューリングマシンの違い – きしだのはてな
- Y コンビネータって何? – IT戦記:型のあるC++では、こうは行かないと思います。
スポンサード リンク |
この記事のカテゴリ
- C++ ⇒ ラムダ式で再帰する1つの方法