0
一つは、ラムダ式と匿名関数を定義することができます。匿名の再帰関数を定義するにはどうすればよいですか?
-- Contrived example
> apply f x = f x
> apply (\n -> n + 1) 3
4
が、匿名再帰関数を定義することが可能ですか?
一つは、ラムダ式と匿名関数を定義することができます。匿名の再帰関数を定義するにはどうすればよいですか?
-- Contrived example
> apply f x = f x
> apply (\n -> n + 1) 3
4
が、匿名再帰関数を定義することが可能ですか?
> apply (\n -> n * ??? (n - 1)) 3 -- compute a factorial
6
インポートData.Function
引数
> import Data.Function
> :t fix
fix :: (a -> a) -> a
> apply (fix $ \f n -> if n == 0 then 1 else n * f (n - 1)) 3
6
ように再帰的に適用する関数を取る
非 -recursive関数の固定点を計算する
fix
関数を使用