どうも、趣味で関数型言語を書いている者です。 長らく関数型言語やってなかったら無名再帰を忘れかけていたので、おさらいがてら不動点コンビネータで無名再帰を作る流れを書き下します。 以下、Haskell の文法で書かれたコードをもとに説明していきます。 無名再帰とは? まずはモチベーションの確認から。 通常、再帰関数は、 sum :: Num a => [a] -> a sum [] = 0 sum (x:xs) = x + sum xs といったように、関数定義の中で自分自身を呼ぶことで再帰処理を記述できます。 この例では、 sum (x:xs) = x + sum xs の部分で自分自身を呼ん…