Erlang 二郎球拍
有没有比以下更好的方法在Erlang中实现Racket的:Erlang 二郎球拍,erlang,racket,Erlang,Racket,有没有比以下更好的方法在Erlang中实现Racket的: ormap(_, []) -> false; ormap(Pred, [H|T]) -> case Pred(H) of false -> ormap(Pred, T); _ -> {ok, Pred(H)} end. 我觉得不错。我不确定Erlang在优化这些方面有多聪明,但您可能希望实际将非false模式匹配绑定到一个变量,并避免重新计算Pred(H) 球
ormap(_, []) -> false;
ormap(Pred, [H|T]) ->
case Pred(H) of
false -> ormap(Pred, T);
_ -> {ok, Pred(H)}
end.
我觉得不错。我不确定Erlang在优化这些方面有多聪明,但您可能希望实际将非false模式匹配绑定到一个变量,并避免重新计算
Pred(H)
球拍版本不包括ok
符号,但这看起来像是Erlangy做的事情,所以我看不出有什么问题。您可能同样希望Pred为非false的情况返回附加的ok
符号,在这种情况下:
V -> V
或
应该有用
V -> V
{ok, V} -> {ok, V}