2011-11-21 57 views
5

在Erlang的外壳:orddict:fetch/2为什么疯了?

> 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()}]

+0

@downvoter:小心点评? – nmichaels

回答

16

的关键,解决这个问题是the docs

名单键之后订购。

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

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

太真了,因此得名。 – rvirding