1
Erlang에서 다음과 같은 고차 하스켈 함수를 작성하는 방법은 무엇입니까?Erlang의 고차 함수
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
Erlang에서 다음과 같은 고차 하스켈 함수를 작성하는 방법은 무엇입니까?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
얼랑 (Erlang)에서 양식을 카레합니까? – coffeMug
@Coffe_Mug currying을 처리 할 구문 설탕은 없습니다. coure 중 필요한 범위의 함수를 반환하는 함수를 작성할 수는 있지만 작성하고 읽는 것은 어렵습니다. –
@Coffe_Mug 또한 동일하고 다른 * arity * (args 수)를 가진 Erlang 함수는 ** 다른 ** 함수입니다. 그런 다음 currying은 지저분 해집니다. – rvirding