Почему приговор: fetch / 2 сумасшедший? - PullRequest
5 голосов
/ 21 ноября 2011

На оболочке Эрланга:

> 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

Что мне здесь не хватает?

Ссылки: Указ: выборка / 2

Документы об ордонкте описывают орддикт как orddict() = [{Key :: term(), Value :: term()}].

1 Ответ

16 голосов
/ 21 ноября 2011

Ключ к решению этой проблемы находится в документах :

Список упорядочен после ключей.

Используйте orddict: from_list / 1 для преобразования из обычного списка {key, value} пар.

> orddict:fetch(b, orddict:from_list([{d, 2}, {a, 1}, {b,5}, {c,9}])).
5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...