Erlang 二郎球拍

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) 球

有没有比以下更好的方法在Erlang中实现Racket的:

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}