55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| 
								 | 
							
								:- initialization(main).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								houses([house(_, _, _, _, _),
							 | 
						||
| 
								 | 
							
									house(_, _, _, _, _),
							 | 
						||
| 
								 | 
							
									house(_, _, _, _, _),
							 | 
						||
| 
								 | 
							
									house(_, _, _, _, _),
							 | 
						||
| 
								 | 
							
									house(_, _, _, _, _)]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								right_of(A, B, [B, A | _]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								right_of(A, B, [_ | Y]) :-
							 | 
						||
| 
								 | 
							
									right_of(A, B, Y).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								next_to(A, B, [A, B | _]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								next_to(A, B, [B, A | _]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								next_to(A, B, [_ | Y]) :-
							 | 
						||
| 
								 | 
							
									next_to(A, B, Y).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								my_member(X, [X|_]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								my_member(X, [_|Y]) :-
							 | 
						||
| 
								 | 
							
									my_member(X, Y).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								print_houses([]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								print_houses([A|B]) :-
							 | 
						||
| 
								 | 
							
									write(A), nl,
							 | 
						||
| 
								 | 
							
									print_houses(B).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								main:-
							 | 
						||
| 
								 | 
							
									houses(Houses),
							 | 
						||
| 
								 | 
							
									my_member(house(red, english, _, _, _), Houses),
							 | 
						||
| 
								 | 
							
									my_member(house(_, spanish, dog, _, _), Houses),
							 | 
						||
| 
								 | 
							
									my_member(house(green, _, _, coffee, _), Houses),
							 | 
						||
| 
								 | 
							
									my_member(house(_, ukrainian, _, tea, _), Houses),
							 | 
						||
| 
								 | 
							
									right_of(house(green,_,_,_,_), house(ivory,_,_,_,_), Houses),
							 | 
						||
| 
								 | 
							
									my_member(house(_, _, snails, _, winstons), Houses),
							 | 
						||
| 
								 | 
							
									my_member(house(yellow, _, _, _, kools), Houses),
							 | 
						||
| 
								 | 
							
									Houses = [_, _, house(_, _, _, milk, _), _,_],
							 | 
						||
| 
								 | 
							
									Houses = [house(_, norwegian, _, _, _)|_],
							 | 
						||
| 
								 | 
							
									next_to(house(_,_,_,_,chesterfields), house(_,_,fox,_,_), Houses),
							 | 
						||
| 
								 | 
							
									next_to(house(_,_,_,_,kools), house(_,_,horse,_,_), Houses),
							 | 
						||
| 
								 | 
							
									my_member(house(_, _, _, orange_juice, lucky_strikes), Houses),
							 | 
						||
| 
								 | 
							
									my_member(house(_, japanese, _, _, parliaments), Houses),
							 | 
						||
| 
								 | 
							
									next_to(house(_,norwegian,_,_,_), house(blue,_,_,_,_), Houses),
							 | 
						||
| 
								 | 
							
									my_member(house(_, _, zebra, _, _), Houses),
							 | 
						||
| 
								 | 
							
									my_member(house(_, _, _, water, _), Houses),
							 | 
						||
| 
								 | 
							
								        statistics.
							 |