次の高階 Haskell 関数を Erlang で記述する方法は?
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
次の高階 Haskell 関数を Erlang で記述する方法は?
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
1> Apply2 = fun(F, X) -> F(F(X)) end.
#Fun<erl_eval.12.82930912>
2> F = fun(Arg) -> Arg * 2 end.
#Fun<erl_eval.6.82930912>
3> Apply2(F, 10).
40
問題は、それが実際に必要なものかどうかわからないことです。Haskell ではapplyTwice f
関数として使用できますが、Erlang では使用できません (組み込みpartial
またはcurry
機能はありません)。また、Erlangでは次のようなことはできません
applyTwice :: (a -> a) -> a -> a
applyTwice f = f . f