2011-11-21 59 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