Finish ch03 exercises.
This commit is contained in:
		
							parent
							
								
									311a24961c
								
							
						
					
					
						commit
						50dbc5f0c0
					
				| 
						 | 
					@ -57,3 +57,26 @@ travel(X, Y) :- travel(X, Z),
 | 
				
			||||||
%%  	      go(metz,paris,
 | 
					%%  	      go(metz,paris,
 | 
				
			||||||
%%  		    go(paris,losAngeles)))
 | 
					%%  		    go(paris,losAngeles)))
 | 
				
			||||||
%% to the query travel(valmont,losAngeles,X).
 | 
					%% to the query travel(valmont,losAngeles,X).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%% First, we need set up the terminal scenario:
 | 
				
			||||||
 | 
					%% travel(X, Y, go(travelDirect(X, Y))) :- travelDirect(X, Y).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%% Next, we recurse.
 | 
				
			||||||
 | 
					%% travel(X, Y, go(travelDirect(X, Z), W)) :-
 | 
				
			||||||
 | 
					%%  	   travelDirect(X, Z),
 | 
				
			||||||
 | 
					%%  	   travel(Z, Y, W).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%% The next exercise says we should modify this to include the
 | 
				
			||||||
 | 
					%% mechanism of transport. This is more tedious, but doable.
 | 
				
			||||||
 | 
					travel(X, Y, go(byCar(X, Y))) :- byCar(X, Y).
 | 
				
			||||||
 | 
					travel(X, Y, go(byCar(X, Z), W)) :-
 | 
				
			||||||
 | 
					    byCar(X, Z),
 | 
				
			||||||
 | 
					    travel(Z, Y, W).
 | 
				
			||||||
 | 
					travel(X, Y, go(byPlane(X, Y))) :- byPlane(X, Y).
 | 
				
			||||||
 | 
					travel(X, Y, go(byPlane(X, Z), W)) :-
 | 
				
			||||||
 | 
					    byPlane(X, Z),
 | 
				
			||||||
 | 
					    travel(Z, Y, W).
 | 
				
			||||||
 | 
					travel(X, Y, go(byTrain(X, Y))) :- byTrain(X, Y).
 | 
				
			||||||
 | 
					travel(X, Y, go(byTrain(X, Z), W)) :-
 | 
				
			||||||
 | 
					    byTrain(X, Z),
 | 
				
			||||||
 | 
					    travel(Z, Y, W).
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue