User Tools

Site Tools


sc330_f2016:prolog1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sc330_f2016:prolog1 [2016/10/19 20:21]
jhansen
sc330_f2016:prolog1 [2021/06/30 23:42]
Line 1: Line 1:
  
-====Objective==== 
-  * Gain experience with logic programming. 
-  * Become familiar with Prolog. 
-  * Gain understanding of the declarative nature of prolog. 
- 
-====Installation==== 
- 
-For this class, we use [[http://​www.swi-prolog.org|SWI-Prolog]]. You can download binaries for a Windows or macOS system [[http://​www.swi-prolog.org/​download/​stable|here]]. 
- 
-Also, there is an unofficial tutorial for installation [[https://​wwu-pi.github.io/​tutorials/​lectures/​lsp/​010_install_swi_prolog.html|here]]. 
- 
-For Mac with [[http://​brew.sh|Homebrew]] installed, you can do this command ([[http://​stackoverflow.com/​a/​23904035/​756329|info here]]): 
- 
-<​code>​brew install swi-prolog</​code>​ 
- 
-For Ubuntu, you can do these commands: 
- 
-<​code>​ 
-sudo add-apt-repository ppa:​swi-prolog/​stable 
-sudo apt-get update 
-sudo apt-get install swi-prolog 
-</​code>​ 
-====Deliverables:​==== 
- 
-You will turn in two prolog programs (in separate files) that solve the following logic puzzles: 
- 
-  *{{sc330_f2016:​schoolsout.png?​linkonly|School'​s Out!}} 
-  *{{sc330_f2016:​rosiesroses.png?​linkonly|Rosie'​s Roses}} 
- 
-To help you start, we've provided a [[smapleSolution.pl|sample solution]] to {{sc330_f2016:​tie.png?​linkonly|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 no 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|this site]]. There may be additional resources there. 
sc330_f2016/prolog1.txt ยท Last modified: 2021/06/30 23:42 (external edit)