阅读当前回答THIS后,我做了以下事情:
A = {1, 99}, B = {5, 15}.
F = fun({key_X, val_X},{key_Y, val_Y}) ->
{val_X, key_X} =< {val_Y, key_Y}
end.
然后,将它放到lists:sort/2
函数中。
如下:
lists:sort(F, [A, B]).
但得到了错误异常:
异常错误:没有匹配erl_eval的函数子句:&#39; -inside-an-interpret-fun - &#39;({1,99},{5,15})
这里有什么错误?你可以指导我吗?
答案 0 :(得分:3)
你必须注意Erlang使用它们的情况区分 atoms 和标识符。
例如:
[a, b, bla, key_1, val_X]
是 atoms [A, B, Bla, Key_1, Val_X]
是变量 在您的代码中,您定义了F
,以便它以某种方式表示特定原子作为输入。
你应该做的(以及他们在你的链接中做了什么)是使用变量标识符:
F = fun({Key_X, Val_X},{Key_Y, Val_Y}) -> {Val_X, Key_X} =< {Val_Y, Key_Y} end.
请参阅?