Merge branch 'master' of https://github.com/mthom/rusty-wam
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
:- module(pairs, [pairs_keys_values/3,
|
:- module(pairs, [pairs_keys_values/3,
|
||||||
pairs_keys/2,
|
pairs_keys/2,
|
||||||
pairs_values/2,
|
pairs_values/2,
|
||||||
|
group_pairs_by_key/2,
|
||||||
map_list_to_pairs/3]).
|
map_list_to_pairs/3]).
|
||||||
|
|
||||||
|
|
||||||
@@ -19,3 +20,14 @@ map_list_to_pairs2([], _, []).
|
|||||||
map_list_to_pairs2([H|T0], Pred, [K-H|T]) :-
|
map_list_to_pairs2([H|T0], Pred, [K-H|T]) :-
|
||||||
call(Pred, H, K),
|
call(Pred, H, K),
|
||||||
map_list_to_pairs2(T0, Pred, T).
|
map_list_to_pairs2(T0, Pred, T).
|
||||||
|
|
||||||
|
|
||||||
|
group_pairs_by_key([], []).
|
||||||
|
group_pairs_by_key([K-V|KVs0], [K-[V|Vs]|KVs]) :-
|
||||||
|
same_key(K, KVs0, Vs, KVs1),
|
||||||
|
group_pairs_by_key(KVs1, KVs).
|
||||||
|
|
||||||
|
same_key(K0, [K1-V|KVs0], [V|Vs], KVs) :-
|
||||||
|
K0 == K1, !,
|
||||||
|
same_key(K0, KVs0, Vs, KVs).
|
||||||
|
same_key(_, KVs, [], KVs).
|
||||||
|
|||||||
Reference in New Issue
Block a user