I am reading "Learn Prolog Now" and one of its exercises I haven't been able to solve myself is the following:
There is a street with three neighboring houses that all have a different color. They are red, blue, and green. People of different nationalities live in the different houses and they all have a different pet. Here are some more facts about them:
- The Englishman lives in the red house.
- The jaguar is the pet of the Spanish family.
- The Japanese lives to the right of the snail keeper.
- The snail keeper lives to the left of the blue house.
Who keeps the zebra?
Define a predicate
zebra/1
that tells you the nationality of the owner of the zebra.Hint: Think of a representation for the houses and the street. Code the four constraints in Prolog.
member
andsublist
might be useful predicates.
Any ideas how to code it under Prolog? Thanks.