LC++ version history
This document summarizes the changes across different versions of the
LC++ library.
Version 1.0
The initial release of LC++ lays the basic foundation for logic
programming in C++. This includes:
- Logic variables (declared with
LogicVariable or the
DECLARE macro) and the "don't care" logic variable
(underscore: _)
- Functors (declared with
Functor or the
FUNn macros)
- The
lassert() function for adding facts to the
respository
- The
query() functions for running queries
- Overloaded operators for conjunction, disjunction, implication
- The
not_provable() predicate
- The atomic predicates
fail and
succeed
- Environments and facades for inspecting results, as well as the
QRT type computer
- The
is() method for logic variables to do
computation
There are a number of practical necessities still missing, including:
- Parametric Polymorphism
- Library of useful functors
as well as some other obvious "wish list" items:
- Support for functors of arity greater than 3
- cut
- efficiency/optimizations
which will hopefully be added in the next version. Nevertheless the
library as it stands is sufficiently useful to warrant a release.
Hopefully we will get some useful feedback.
LC++ homepage