/prolog-examples

Some simple examples for new Prolog programmers

Primary LanguageProlog

prolog-examples

Some simple examples for new Prolog programmers. Varying degrees of polish. Have fun.

finished examples

detective problem

These are two approaches to solving a detective's problem. She's interrogated three witnesses to a murder, all of whom are also suspects. The problem is to determine which of the suspect's testimony is inconsistent with the others.

  • detectivepuzzle.pl - My original solution, written when I was new to Prolog. It now feels very 'imperative'
  • newdetective.pl - I recently rewrote it
  • adriandetective.pl - Adrian King's solution

talespin2.pl

Implementation of a classic story generator

tictactoe.pl

Implementation of tic tac toe

birds.pl

The birds example from the 'expert systems in Prolog' tutorial by Amzi (on the web)

cannibals2.pl

A well commented example of the cannibals/missionaries problem

This was used as an example for a talk whose notes are in may15version.txt

cannibals2nocomments.pl has fewer comments, but has some additional capabilities

cuttutorial.pl

A little story analogy to help understand cut and cut, fail

emoticons.pl

A joke. I'm known for my happy array of 'smiley' emoticons. Sometimes others have trouble understanding my smileys. This program purports to help.

familytree.pl

The classic familytree example. This one has two separate families in it. (left as exercise for the reader to find the two disconnected groups).

socketdemo.pl

Demonstration of reading from a socket

Constraint examples

Examples of CLPFD

addlists.pl

Constrains two lists to pairwise add to a third.

children.pl

A fully worked problem involving seating children in a classroom

constraintolist.pl

A fully worked problem, constraining a variable to be a member of a list.

sudoku.pl

Solves a Sudoku puzzle by CLPFD

loops.pl

Demo of various ways to do in Prolog what you'd do with loops in an imperative language.

nqueens.pl

Implementation of the generalized version of the classic 8-queens problem.