如何在 Erlang 中编写以下高阶 Haskell 函数?
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
如何在 Erlang 中编写以下高阶 Haskell 函数?
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
as 函数,但不能在 Erlang 中使用(没有内置partial
或curry
功能)。你也不能在 Erlang 中做类似的事情
applyTwice :: (a -> a) -> a -> a
applyTwice f = f . f