1

次の高階 Haskell 関数を Erlang で記述する方法は?

applyTwice :: (a -> a) -> a -> a  
applyTwice f x = f (f x)
4

1 に答える 1

3
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
于 2013-02-27T18:17:02.677 に答える