为什么orddict:fetch / 2疯了?

时间:2011-11-21 18:46:35

标签: erlang

在Erlang shell:

> orddict:fetch(b, [{d, 2}, {a, 1}, {b,5}, {c,9}]).
** exception error: no function clause matching 
                    orddict:fetch(b,[{d,2},{a,1},{b,5},{c,9}])

> orddict:fetch(b, [{a, 1}, {b,5}, {c,9}]).
5

我在这里缺少什么?

参考文献:orddict:fetch/2

The orddict docs将orddict描述为orddict() = [{Key :: term(), Value :: term()}]

1 个答案:

答案 0 :(得分:16)

解决此问题的关键在于the docs

  

列表按键后排序。

使用orddict:from_list/1转换{key, value}对的常规列表。

> orddict:fetch(b, orddict:from_list([{d, 2}, {a, 1}, {b,5}, {c,9}])).
5