Skip to content

Prolog programs from the Simply Logical book

License

Notifications You must be signed in to change notification settings

simply-logical/programs

Repository files navigation

WHAT CAN I FIND HERE?

This directory contains Prolog programs from the book

		SIMPLY LOGICAL
	Intelligent Reasoning by Example
		Peter A. Flach
	    John Wiley & Sons, 1994
	   ISBN 0471 94152 2 (book)
	   ISBN 0471 94153 0 (disk)
	   ISBN 0471 94215 4 (book + disk)

Disks containing the same set of programs are available for Apple Macintosh, IBM PC, and Sun workstation.

The programs are grouped in the following files, reflecting the structure of the book:

chapter1
chapter3
hanoi
chapter4
chapter5
chapter6
chapter7
chapter8
chapter9
section92
section93
library
appendixB
builtins

"hanoi" is the small program given at the start of Part II of the book. "library" contains the utility predicates listed in Appendix A.2. Predicates from this file are needed for programs in most of the other files. "builtins" contains the definition of some predicates that are available in some Prologs (e.g. LPA Prolog), but not in others (e.g. Quintus Prolog). If you have a Prolog of the second type, you need this file whenever you need the file "library". NB. Note that there is no file "chapter2", since this chapter does not contain Prolog programs!

WHAT PROLOG DO I NEED TO RUN THESE PROGRAMS?

The programs follow Edinburgh syntax, and the files are ordinary text files. The programs have been tested in Quintus Prolog. They should run under Sicstus Prolog as well. For other Prologs, some minor adjustments may be necessary. NB. Quintus Prolog refuses to redefine built-in predicates like copy_term/2, and generates an ERROR message. These can safely be ignored, as well as the WARNINGs about singleton variables.

ARE THE PROGRAMS EXACTLY AS IN THE BOOK?

In principle, they are. If the book gives various versions of a predicate, or describes several examples, all but one of these are commented out. You will need to edit the file if you want to run the other version or example. Also, some of the meta-interpreters use a new predicate cl/2 instead of clause/2. This is done because a call like ?-clause(not(flies(tweety)),B) where not/1 is a built-in predicate, generates an error-message in several Prologs, instead of failing.

BUG OR FEATURE?

There is no technical support for these programs. However, if you discover what you think is a serious error in one of the programs, please send a detailed report by email to

DISCLAIMER

These programs were written for educational purposes only. No claim is made regarding their correctness, and no responsibility is accepted by either the author or John Wiley & Sons for any damage resulting from the use of these programs.

About

Prolog programs from the Simply Logical book

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages