1:- module(sort_dict, [
2 sort_dict/3, 3 sort_dict/4 4]).
18sort_dict(Key, Direction, List, Sorted):-
19 ( Direction = asc
20 -> predsort(asc(Key), List, Sorted)
21 ; ( Direction = desc
22 -> predsort(desc(Key), List, Sorted)
23 ; throw(error(invalid_direction(Direction))))).
24
25asc(Key, Result, Dict1, Dict2):-
26 Value1 = Dict1.Key,
27 Value2 = Dict2.Key,
28 ( Value1 @< Value2
29 -> Result = (<)
30 ; Result = (>)).
31
32desc(Key, Result, Dict1, Dict2):-
33 Value1 = Dict1.Key,
34 Value2 = Dict2.Key,
35 ( Value2 < Value1
36 -> Result = (<)
37 ; Result = (>)).
44sort_dict(Key, List, Sorted):-
45 sort_dict(Key, asc, List, Sorted)
Sorts list of dicts by key
Sorts list of dicts by key. */