2011-11-21 7 views
5

なぜorddict:fetch/2が狂っているのですか? Erlangのシェルで

> 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 docsorddict() = [{Key :: term(), Value :: term()}]としてorddictを記述する。

+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

関連する問題