爲了提取orddict的值(記錄)作爲排序列表,嘗試這樣做:排序值
-module(test).
-compile(export_all).
-record(node, {name="", cost=0}).
test() ->
List = orddict:append("A",#node{name="A",cost=1},
orddict:append("B",#node{name="B",cost=2},
orddict:new())),
lists:sort(fun({_,A},{_,B}) -> A#node.cost =< B#node.cost end,
orddict:to_list(List)).
排序失敗,exception error: {badrecord,node}
。
什麼是正確的語法?
解決:
正確插入方法是orddict:store/2
代替orddict:append/2
。然後模式{_,A}
與比較功能匹配。
只是想知道爲什麼你希望,因爲它已經被排序的orddict排序? – rvirding
的目標是提取和排序orddict的值(它恰好是記錄) – Francois