This week’s assignment is in Prolog, a logic programming language. Instead of downloading a compiler, you are welcome to use this online compiler:
Just click the blue “Program” button to get started.
Because Prolog is very different from most languages you’ve worked with, I will start you off with an example program. I like puzzles, and have always enjoyed a good logic puzzle. One of the classics already has a solution created to solve it in Prolog, as can be seen here:
Use what you see there as well as what you learned in class this morning (or read in the book) to understand how that program works. Then, apply that knowledge to solve the following logic puzzle:
Five women are side by side booking a trip in a travel agency. Each one has a different name, age, profession, and colour of purse, and is traveling to a different country for a different duration. Follow the clues to discover where each one is going.
- The Singer is at the third position.
- The woman traveling for 20 days is somewhere between the woman who is going to Peru and the owner of the Blue purse, in that order.
- Ana is exactly to the left of the Biologist.
- The 32 years old is going to see the Sahara.
- The owner of the White purse is exactly to the right of the woman traveling to visit Machu Picchu.
- Glenda is somewhere to the right of the woman who has the Green purse.
- The person wearing the White purse is somewhere between the 30 years old woman and the owner of the Blue purse, in that order.
- The 24 years old woman is going to visit an Aztec pyramid.
- The woman wearing the White purse is somewhere to the left of the yougest woman.
- The traveler going to Italy is exactly to the right of the woman traveling for 20 days.
- The person who is going to travel for 25 days has the Red purse.
- The Judge is in the first position.
- The Nurse is exactly to the right of the woman who is going to travel for 20 days.
- The Hostess is somewhere between Lara and the woman who has the Blue purse, in that order.
- In the second position is the woman that is going to travel for 15 days.
- Rose has the Green purse.
- The woman who is traveling for less than a week is exactly to the left of the 32 years old woman.
- The person traveling for 5 days is 28.
- The Blue purse owner is somewhere between the 30 years old woman and the owner of the Yellow purse, in that order.
Answer the following questions about these women:
- What is the colour of Jessie’s purse?
- What will be the duration of the visit to China?
- What is the occupation of the 26 year old?
- To which location will someone travel for exactly 10 days?
Also, output a table listing all five women and their attributes.
As a bonus question, what is the first rule that triggers a backtracking when generating the table?
E-mail me the code (from the left window) as well as the queries (from the lower-right window). These can either be in the body of the e-mail, or in attached files. Just make it clear which is which.