bootstrap

view genesis/church/prolog/map.prolog @ 616:723871f2f056

comment out more debug statements
fix up interpreter-test
author John Leuner <jewel@subvert-the-dominant-paradigm.net>
date Sun Nov 22 12:55:44 2009 +0200 (2009-11-22)
parents
children
line source
1 member(X,[X|_]).
2 member(X,[_|List]) :- member(X,List).
4 adjacent(X,Y,Map) :- member([X,Y],Map) ; member([Y,X],Map).
7 find_regions([],R,R).
8 find_regions([[X,Y]|S], R,A) :-
9 (member(X,R) ->
10 (member(Y,R) -> find_regions(S,R,A) ; find_regions(S,[Y|R],A)) ;
11 (member(Y,R) -> find_regions(S,[X|R],A) ; find_regions(S,[X,Y|R],A) )).
14 color(Map,Colors,Coloring) :-
15 find_regions(Map,[],Regions),
16 color_all(Regions,Colors,Coloring),
17 not(conflict(Map,Coloring)).
18 color_all([R|Rs],Colors,[[R,C]|A]) :-
19 member(C,Colors),
20 color_all(Rs,Colors,A).
21 color_all([],_,[]).
23 conflict(Map,Coloring) :- member([R1,C],Coloring),
24 member([R2,C],Coloring),
25 adjacent(R1,R2,Map).
27 map1([[1,2],[1,3],[1,4],[1,5],[2,3],[2,4],[3,4],[4,5]]).
28 map2([[1,2],[2,3],[1,3]]).
29 map3([[1,2]]).