User Tools

Site Tools


sc330_f2016:prolog1

This is an old revision of the document!


NOT FINALIZED. CURRENTLY EDITING

Objective:

  • Gain experience with logic programming.
  • Become familiar with Prolog.
  • Gain understanding of the declarative nature of prolog.

You will use the Prolog container for this Assignment.

(The Prolog container isn't ready, ensure that you are using SWI-Prolog)

Deliverables:

You will turn in two prolog programs(in separate files) that solve the following logic puzzles:

Your “main” function will be the predicate solve.

To help you we've provided a sample solution to It's a tie, Use this as a model for your own solutions.

Notes:

  • Just copy and paste the all_different function. It simply checks to make sure each item in the list is unique.
  • Check spelling errors. There is not such thing as misspelled atoms. So speigel and spiegel are both valid but different.
  • Once you have a solution just check whether it satisfies each of the numbered rules in the problem.
  • These problems make extensive use of the “not operator, \+.
    • \+ works as you expect when all variables are completely bound.
    • If E contains unbound variables, \+E will try to find bindings to that will make E true. If Successful \+ will fail.
  • This lab is taken from http://www.cis.upenn.edu/~matuszek/cis554-2015/Assignments/prolog-1-logic-puzzles.html there may be additional resources there.
sc330_f2016/prolog1.1476907373.txt.gz · Last modified: 2021/06/30 23:40 (external edit)