在 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 语句并不优雅。有没有更好的方法来做到这一点?