, , . , , .
, : Country, Neighbours)
Neighbours , Country. , 30 , ( ) :
albania, [gr , macedonia Yugoslavia]). ngb(andorra, [franee, Spain]>.
Slovakia, Slovenia,Switzerland])' Hungary, "^ lieChtenS"in'
, Country/Colour
. , . , , C2, .. :
{ albania/Cl, ar.de r / 2, austria/,...]
, colours(County_colour_list!
, Country_colour_list ngb. , , , . , , Prolog :
8.
colours ([]).
colours [Country/Colour I Rest]):-
colours! Rest},
member; Colour, [yellow, blue, red, green]),
not(member Countryl /Colour, Rest), neighbour* Ccuntry, Countryl)).
neighbour (Country, Country!):-ngb(Country, neighbours), member; Countryl, Neighbours).
member (x, L), , . . . , setcf, . : country! );- ; , _}.
:
?- setofC Cntry/Colour, countryl Cntry), CountryColourList), colours i CountryColourList!.
setof / (CountryColOurList) , . , colours . , , - .
|
|
, Prolog colours, . / , . ( ), ngb. - , ..; . , , , , . , .
, , . , ; , , , .. ( ). , / , . , , .
/ , , - .
, . raakelist. ( ) , (Closed). , (Open),
180 I. Prolog
Closed. Open Closed, Open .
Jtia/.elisi: List]:-
collect ([germany], [], List).
collect { [}, Closed, Closed). %
% Closed
collect { [X| Open), Closed, List):-
member (X, Closed),!, Closed?
collect(Open, Closed, List). ft
collect! [X | Open], Closed, List):-
ngb(X, Ngbs), % X
conc(Rgba, Open, Openl], % Openl
collect! Openl, [X | Closed], List). \
cone, , .