私はJavaScriptでの経験を持っていると私は、コールバック関数に使用されています:Erlangで非同期作業を処理する標準的な方法は何ですか?
function myFun(arg1, arg2, successCB, failCB) {
var sum = arg1 + arg2;
if (sum > tooHigh) {
failCB("too high!");
} else {
otherFun(sum, arg1, successCB, failCB);
}
}
私はErlangで同じコード書くことができます。
my_fun(Arg1, Arg2, SuccessCB, FailCB) ->
case Arg1 + Arg2 of
Sum when Sum > ?TOO_HIGH ->
FailCB(too_high);
Sum ->
other_fun(Sum, Arg1, SuccessCB, FailCB)
end.
を、私は私の経験から、このアプローチは、合理的な見つけ、私は感じます私のコードでこれを大量に行う必要があるように、これらの真/偽/どんなシナリオを管理するための良い方法があるようです。
この典型的なアーランコードですか?私はこれをやるべきである他の方法がありますか?
異なる機能の句を使用するだけではどうですか?または 'のケースユーザー'? –
Erlangでのエラー処理と同じアプローチを他の言語と同じように使用しようとすると、間違っているので、宿題をする必要があります。たとえばErlangの "墜落させよう"という哲学を探してみよう。例えば、[関連する質問がある](http://stackoverflow.com/questions/4393197/erlangs-let-it-crash-philosophy-applicable-elsewhere)。 –