Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Anniepoo/prolog-examples

Some simple examples for new Prolog programmers
https://github.com/Anniepoo/prolog-examples

family-tree prolog

Last synced: about 1 month ago
JSON representation

Some simple examples for new Prolog programmers

Awesome Lists containing this project

README

        

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
(note that a far better implementation is at https://github.com/SWI-Prolog-Education/talespin-annie)

### 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.

### techtree2.pl

solve game 'tech tree' problems using CHR.