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 ).
Search Step V
Let us recall our program.
It said that something was fun if it was red and a car or blue and a bike.
Well, we couldn't find something that was both red and a car, so we now see if something blue and a bike.
Let's recap the code:
/* clause 1 */
fun( X ) :- /* we've tried this clause but without luck */
red( X ),
car( X ).
/* clause 2 */
fun( X ) :- /* so lets have a go with this clause now */
blue( X ),
bike( X ).
Thus we will now try to prove that something is fun, by trying to find something that is blue, using the blue database:
/* database of blue items */
blue( flower_3 ).
blue( glass_9 ).
blue( honda_81 ).
In this case we now choose blue(flower_3)
.