| Slide 14.32: Search (cont.) Home |   | 
     fun( X ) :- red( X ),  car( X ).
     fun( X ) :- blue( X ), bike(X).
     red( apple_1 ).            /* database of red items */
     red( block_1 ).
     red( car_27 ).
     car( desoto_48 ).          /* database of cars */
     car( edsel_57 ).
     bike( iris_8 ). 
     bike( my_bike ). 
     bike( honda_81 ).           
bike(flower_3) against our bike database as above.
This again must fail, since flower_3 does not match against iris_8, my_bike, or honda_81.  
So as before, we must backtrack and find an alternate blue item.  
Recall our database:
     blue( flower_3 ).
     blue( glass_9 ).
     blue( honda_81 ).
We have tried flower_3 without luck, so next we try the second blue fact, blue(glass_9).  
bike(glass_9).  
  Again this fails to unify.  
 blue, blue(honda_81).  
 bike(honda_81) matches the clause three!.  
      ?- fun( What ).
     What=honda_81
     yes