Erlang コードでは、{tag, value} のリストを持つ辞書のようなデータ構造を使用しています。例: {robot, [{x-pos, 50}, {y-pos, 100}, {speed, 10}] . リスト内の要素の数またはその順序は予測できません。get_xpos、get_ypos などの各パラメーターの値を見つけるためにリストを走査する関数を作成しました。
このように動作する関数を書きたい
function(MyTuple) when get_xpos (MyTuple) > 50 -> stop;
function(MyTuple) when get_ypos (MyTuple) < 50 -> forward.
ユーザー定義関数はガード内で許可されていないか、Erlang では許可されていないため、これは不可能です。このような多くの条件があるため、これらの条件ごとに case ステートメントを記述するのはエレガントではありません。これを行うより良い方法はありますか?