1

如何在 Erlang 中编写以下高阶 Haskell 函数?

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 fas 函数,但不能在 Erlang 中使用(没有内置partialcurry功能)。你也不能在 Erlang 中做类似的事情

applyTwice :: (a -> a) -> a -> a  
applyTwice f = f . f
于 2013-02-27T18:17:02.677 回答