The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.7

  • Parsing errors now attempt to report the line number of the error. Added new predicates: consult/1 listing/1 ne/2 Updated the license information display for aiprolog shell. Modified listing/0 to not show builtins. Added math preprocessor. This transforms proper Prolog math into internal predicates the parser recognizes:
    • X is N + 1. % is(X, plus(N, 1)).
  • Pushed all parsing back to the Parser class. No more parsing in TermList and Term :) Added anonymous variables: foo(bar, _, baz). I don't have any efficiency gains from this (yet) because they're just variables with hidden names, but they work. Added Test::Exception to the PREREQ_PM (thanks to rjray for pointing that out). Updated the docs and examples.

Documentation

A simple Prolog shell using AI::Prolog.
Builtin predicates that AI::Prolog supports
The what and the why of logic programming.

Modules

Perl extension for logic programming.
Create a choicepoint object for the Engine.
Run queries against a Prolog database.
The Prolog database.
A simple Prolog parser.
The AI::Prolog Preprocessor
The AI::Prolog math macro
Create Prolog Terms.
Perl implementation of the Prolog cut operator.
Perl implementation of Prolog numbers.
Create lists of Prolog Terms.
Perl implementation of Prolog clauses.
Perl implementation of Prolog primitives.
Perl implementation of Prolog "step" mechanism.