Logtalk 2.20.0 files.

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1114 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
pmoura 2004-08-16 16:41:11 +00:00
parent 1781ff9420
commit f5e660b9a3
156 changed files with 1886 additions and 438 deletions

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================
@ -23,7 +23,8 @@ the user home directory.
INSTALLING FOR MULTIPLE USERS INSTALLING FOR MULTIPLE USERS
In the case of multiple users, the Logtalk directory can be copied to any In the case of multiple users, the Logtalk directory can be copied to any
location that its accessible by all the users. location that its accessible by all the users (assuming that copying the
Logtalk directory to each user home directory is not feasible or desired).
Regarding directory and file permissions, it is advisable to make all files Regarding directory and file permissions, it is advisable to make all files
read-only in order to avoid user tempering. However, the library and examples read-only in order to avoid user tempering. However, the library and examples
@ -31,40 +32,56 @@ sub-directories (and possibly the compiler sub-directory, depending on the
chosen Prolog compiler) must be user writable as compiling Logtalk source chosen Prolog compiler) must be user writable as compiling Logtalk source
files generates intermediate Prolog files, which are written to the same files generates intermediate Prolog files, which are written to the same
location as the source files. However, making directories world-writable is a location as the source files. However, making directories world-writable is a
security risk. There are two alternatives. The first one is to pre-compile the security risk. One solution is to copy the Logtalk xml, examples, and library
library and all examples and to turn on the compiler option "smart_compilation" directories to each user home directory (the "misc" sub-directory contains
in order to avoid the need of recompilation when the files are loaded by the some scripts which may be called by the end-users for making these copies).
users. The second, and probably best, alternative is to copy the Logtalk xml,
examples, and library directories to each user home directory (the "misc"
sub-directory contains a shell script for automating these copies).
ENVIRONMENT VARIABLES ENVIRONMENT VARIABLES
In Unix and Unix-like systems is recommended that you define an environment It is recommended that you define an environment variable named LOGTALKHOME
variable named $LOGTALKHOME pointing to the Logtalk installation for use with pointing to the Logtalk installation directory for use with your Prolog
your Prolog compilers. If you use a csh shell, add the following line to your compilers. In addition, you may want to add the Logtalk sub-directory "xml",
~/.cshrc file: which contains useful scripts for processing XML documenting files, to your
execution path.
setenv LOGTALKHOME "/your/installation/directory/lgt2191" * Unix and Unix-like systems:
If you use a csh shell, add the following line to your ~/.cshrc file:
setenv LOGTALKHOME /your/installation/directory/lgt2200
setenv PATH $PATH:$LOGTALKHOME/xml:$LOGTALKHOME/misc
If you use a bash shell, add the following lines to your ~/.profile file: If you use a bash shell, add the following lines to your ~/.profile file:
LOGTALKHOME="/your/installation/directory/lgt2191" LOGTALKHOME=/your/installation/directory/lgt2200
export LOGTALKHOME export LOGTALKHOME
PATH=$PATH:$LOGTALKHOME/xml:$LOGTALKHOME/misc
export PATH
When using the provided shell script for installing Logtalk, a symbolic link When using the provided shell script for installing Logtalk, a symbolic link
to the Logtalk installation directory is automatically created. The link is to the Logtalk installation directory is automatically created. The link is
named "logtalk". In this case, use this symbolic link to define the named "logtalk". In this case, you may use this symbolic link to define the
environment variable in order to avoid breaking it when upgrading Logtalk. environment variable in order to avoid breaking it when upgrading Logtalk.
* Windows systems:
In Windows 95/98/ME, environment variables are defined in the autoexec.bat
file (you will need to reboot after editing the file):
SET LOGTALKHOME=C:\your\installation\folder\
In Windows NT/2000/XP, environment variables are defined using the System
properties control panel (if you are a system administrator, you may define
LOGTALKHOME as a system variable, otherwise define it as a user variable).
CREATING NEW PROLOG TOP-LEVELS FOR AUTOMATIC LOADING OF LOGTALK CREATING NEW PROLOG TOP-LEVELS FOR AUTOMATIC LOADING OF LOGTALK
Most Prolog compilers allows the user to define an initialization file that Most Prolog compilers allows the user to define an initialization file that
is automatically consulted at startup. This initialization file may contain is automatically consulted at startup. This initialization file may contain
directives for loading other files, such as the Logtalk configuration file directives for loading other files, such as the Logtalk configuration file
and the Logtalk compiler. The "misc" sub-directory contains several shell and the Logtalk compiler. The "misc" sub-directory contains several scripts
scripts for automating the creation of these initialization files for some for automating the creation of these initialization files for some Prolog
popular Prolog compilers. In addition, be sure to read the configs/NOTES file compilers. In addition, be sure to read the configs/NOTES file notes on the
notes on the Prolog compilers that you intend to use. Prolog compilers that you intend to use.

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================
@ -39,7 +39,7 @@ sub-directory.
Note that both the configuration files and the compiler/preprocessor files Note that both the configuration files and the compiler/preprocessor files
are Prolog files. The predicate called to load these files depends on your are Prolog files. The predicate called to load these files depends on your
Prolog compiler (consult your Prolog compiler documentation or take a look Prolog compiler (consult your Prolog compiler documentation or take a look
at the definition of the predicate $lgt_load_prolog_code/1 in the config at the definition of the predicate '$lgt_load_prolog_code'/1 in the config
file. For most command-line compilers, you could type at the Prolog prompt file. For most command-line compilers, you could type at the Prolog prompt
something like: something like:

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================
@ -10,6 +10,42 @@ RELEASE NOTES
============= =============
2.20.0 - August 16, 2004
Added support for the uses/2 predicate directive (whose semantics is similar
to C++ using-declarations). Updated the uses/1 entity directive to accept as
argument a single object identifier.
Improved installation instructions for Windows users.
Added four new sample bash shell scripts and Windows JScript scripts for
converting XML documenting files to PDF, HTML, and XHTML using several XSL
processors.
Added missing namespace to XSL files in order to generated valid (X)HTML
files with recent versions of XSLT processors.
Updated the User Manual documentation on converting XML documenting files
to other formats.
Removed the texml.xsl XSLT file as the TeXMLatte application it depends on
is no longer available.
Added Windows JScript script for copying the Logtalk examples, library, and
xml directories to the user directory.
Added Windows JScript scripts for easy integration of Logtalk with ECLiPSe,
SWI-Prolog, SICStus Prolog, and YAP.
Added missing extension for source metafiles to the SWI-Prolog hook file.
Corrected a bug in the lgtxhtml.xsl XSLT file where a wrong reference to
the Logtalk CSS file is being used in the xml-stylesheet tag.
The iso_initialization_dir/1 compiler option is now a read only flag,
defined in the configuration files.
2.19.1 - August 2, 2004 2.19.1 - August 2, 2004
Corrected a bug where entities could not be reloaded if they depend on Corrected a bug where entities could not be reloaded if they depend on

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================
@ -81,3 +81,7 @@ value is "flags" (print both banner and default flag values).
Logtalk version 2.17.1 removes predicate nth/3 from library entities listp, Logtalk version 2.17.1 removes predicate nth/3 from library entities listp,
list, and difflist (replaced by the predicates nth0/3 and nth1/3). list, and difflist (replaced by the predicates nth0/3 and nth1/3).
Logtalk version 2.20.0 updates the semantics of the uses/1 entity directive
to accept as argument a single object identifier (this change is needed in
order to ensure compatibility with the new uses/2 predicate directive).

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -13,9 +13,6 @@
source is 'Example adopted from the SICStus Objects documentation.']). source is 'Example adopted from the SICStus Objects documentation.']).
:- uses(list).
move(X, Y) :- move(X, Y) :-
::check_bounds(x, X), ::check_bounds(x, X),
::check_bounds(y, Y), ::check_bounds(y, Y),

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -4,13 +4,14 @@
:- info([ :- info([
version is 1.0, version is 1.1,
date is 1998/3/23, date is 2004/8/15,
author is 'Paulo Moura', author is 'Paulo Moura',
comment is 'Concentric polygons as a constrained binary relation.']). comment is 'Concentric polygons as a constrained binary relation.']).
:- uses(list). :- uses(list,
[member/2, select/3]).
descriptor_([x1, x2]). descriptor_([x1, x2]).
@ -33,7 +34,7 @@
add_tuple([Polygon| Polygons]) :- add_tuple([Polygon| Polygons]) :-
Polygon::position(X, Y), Polygon::position(X, Y),
forall(list::member(Polygon2, Polygons), {Polygon2::move(X, Y)}), forall(member(Polygon2, Polygons), {Polygon2::move(X, Y)}),
^^add_tuple([Polygon| Polygons]). ^^add_tuple([Polygon| Polygons]).
@ -45,24 +46,24 @@
propagate(after, move(X, Y), Polygon, _, Tuple) :- propagate(after, move(X, Y), Polygon, _, Tuple) :-
list::select(Polygon, Tuple, Polygons), select(Polygon, Tuple, Polygons),
!, !,
forall( forall(
(list::member(Polygon2, Polygons),\+ Polygon2::position(X, Y)), (member(Polygon2, Polygons),\+ Polygon2::position(X, Y)),
{Polygon2::move(X, Y)}). {Polygon2::move(X, Y)}).
propagate(after, transX(X), Polygon, _, Tuple) :- propagate(after, transX(X), Polygon, _, Tuple) :-
list::select(Polygon, Tuple, Polygons), select(Polygon, Tuple, Polygons),
!, !,
forall( forall(
(list::member(Polygon2, Polygons), \+ Polygon2::position(X, _)), (member(Polygon2, Polygons), \+ Polygon2::position(X, _)),
{Polygon2::transX(X)}). {Polygon2::transX(X)}).
propagate(after, transY(Y), Polygon, _, Tuple) :- propagate(after, transY(Y), Polygon, _, Tuple) :-
list::select(Polygon, Tuple, Polygons), select(Polygon, Tuple, Polygons),
!, !,
forall( forall(
(list::member(Polygon2, Polygons), \+ Polygon2::position(_, Y)), (member(Polygon2, Polygons), \+ Polygon2::position(_, Y)),
{Polygon2::transY(Y)}). {Polygon2::transY(Y)}).

View File

@ -11,9 +11,6 @@
comment is 'Polygon predicates.']). comment is 'Polygon predicates.']).
:- uses(list).
:- public(move/2). :- public(move/2).
:- mode(move(+integer, +integer), one). :- mode(move(+integer, +integer), one).

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -3,14 +3,14 @@
:- info([ :- info([
version is 1.1, version is 1.2,
author is 'Paulo Moura', author is 'Paulo Moura',
date is 2004/6/30, date is 2004/8/15,
comment is 'Call executing time profiler.']). comment is 'Call executing time profiler.']).
:- uses(time). :- uses(time, [cpu_time/1]).
:- uses(loop). :- uses(loop, [forto/3]).
:- public(timer/2). :- public(timer/2).
@ -34,19 +34,19 @@
timer(Call, Time) :- timer(Call, Time) :-
time::cpu_time(Start), cpu_time(Start),
(call(Call) -> true; true), (call(Call) -> true; true),
time::cpu_time(End), cpu_time(End),
Time is End - Start. Time is End - Start.
timer(Call, Times, Time) :- timer(Call, Times, Time) :-
time::cpu_time(Start), cpu_time(Start),
loop::forto(1, Times, Call), forto(1, Times, Call),
time::cpu_time(End), cpu_time(End),
time::cpu_time(Start2), cpu_time(Start2),
loop::forto(1, 0, true), forto(1, 0, true),
time::cpu_time(End2), cpu_time(End2),
Overhead is End2 - Start2, Overhead is End2 - Start2,
Time is (End - Start - Overhead) / Times. Time is (End - Start - Overhead) / Times.

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -9,12 +9,12 @@ http://www.csci.csusb.edu/dick/cs320/prolog/Potions.htm
:- info([ :- info([
version is 1.0, version is 1.1,
date is 2004/4/29, date is 2004/8/15,
author is 'Paulo Moura', author is 'Paulo Moura',
comment is 'Harry Potter potions logical puzzle.']). comment is 'Harry Potter potions logical puzzle.']).
:- uses(list). :- uses(list, [select/3]).
:- public(potions/7). :- public(potions/7).
:- mode(potions(?atom, ?atom, ?atom, ?atom, ?atom, ?atom, ?atom), zero_or_one). :- mode(potions(?atom, ?atom, ?atom, ?atom, ?atom, ?atom, ?atom), zero_or_one).
@ -27,17 +27,17 @@ http://www.csci.csusb.edu/dick/cs320/prolog/Potions.htm
potions(P1, P2, P3, P4, P5, P6, P7) :- potions(P1, P2, P3, P4, P5, P6, P7) :-
contents(H1), contents(H1),
list::select(P1, H1, H2), select(P1, H1, H2),
list::select(P7, H2, H3), select(P7, H2, H3),
P1 \= P7, P1 \= forward, P7 \= forward, % second clue P1 \= P7, P1 \= forward, P7 \= forward, % second clue
list::select(P2, H3, H4), select(P2, H3, H4),
P2 \= poison, P2 \= poison,
list::select(P3, H4, H5), select(P3, H4, H5),
P3 \= poison, % third clue P3 \= poison, % third clue
P2 = P6, P2 = P6,
list::select(P6, H5, H6), % fourth clue select(P6, H5, H6), % fourth clue
list::select(P4, H6, H7), select(P4, H6, H7),
list::select(P5, H7, []), select(P5, H7, []),
two_pairs_poison_wine([P1, P2, P3, P4, P5, P6, P7]). % first clue two_pairs_poison_wine([P1, P2, P3, P4, P5, P6, P7]). % first clue

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -5,13 +5,14 @@
:- info([ :- info([
version is 3, version is 3.1,
date is 2000/7/24, date is 2004/8/15,
author is 'Paulo Moura', author is 'Paulo Moura',
comment is 'Enables the representation of relations with constraints on the state of participating objects.']). comment is 'Enables the representation of relations with constraints on the state of participating objects.']).
:- uses(list). :- uses(list,
[member/2, memberchk/2, subtract/3]).
:- private(activ_points_/3). :- private(activ_points_/3).
@ -106,7 +107,7 @@
del_object_monitors(Object, Role) :- del_object_monitors(Object, Role) :-
::plays_roles(Object, Roles) -> ::plays_roles(Object, Roles) ->
(list::member(Role, Roles) -> (member(Role, Roles) ->
true true
; ;
del_object_monitors(Object, Role, Roles)) del_object_monitors(Object, Role, Roles))
@ -145,7 +146,7 @@
activ_point(Role, Event, Message) :- activ_point(Role, Event, Message) :-
::activ_points_(Role, Event, Messages), ::activ_points_(Role, Event, Messages),
list::member(Message, Messages). member(Message, Messages).
activ_points(Role, Event, List) :- activ_points(Role, Event, List) :-
@ -160,7 +161,7 @@
set_activ_points(Role, Event, List) :- set_activ_points(Role, Event, List) :-
::descriptor(Descriptor), ::descriptor(Descriptor),
list::memberchk(Role, Descriptor), memberchk(Role, Descriptor),
::retractall(activ_points_(Role, Event, _)), ::retractall(activ_points_(Role, Event, _)),
::assertz(activ_points_(Role, Event, List)). ::assertz(activ_points_(Role, Event, List)).
@ -174,7 +175,7 @@
filter_messages([Role| Roles], Original, Event, Messages) :- filter_messages([Role| Roles], Original, Event, Messages) :-
::activ_points_(Role, Event, Excluded), ::activ_points_(Role, Event, Excluded),
list::subtract(Original, Excluded, Rest), subtract(Original, Excluded, Rest),
filter_messages(Roles, Rest, Event, Messages). filter_messages(Roles, Rest, Event, Messages).
@ -196,13 +197,13 @@
::descriptor(Descriptor), ::descriptor(Descriptor),
write('call activation points:'), nl, write('call activation points:'), nl,
findall(Messages, findall(Messages,
(list::member(Role, Descriptor), (member(Role, Descriptor),
::activ_points(Role, before, Messages)), ::activ_points(Role, before, Messages)),
CallList), CallList),
write(' '), writeq(CallList), nl, write(' '), writeq(CallList), nl,
write('exit activation points:'), nl, write('exit activation points:'), nl,
findall(Messages, findall(Messages,
(list::member(Role, Descriptor), (member(Role, Descriptor),
::activ_points(Role, after, Messages)), ::activ_points(Role, after, Messages)),
ExitList), ExitList),
write(' '), writeq(ExitList), nl. write(' '), writeq(ExitList), nl.

View File

@ -6,15 +6,16 @@
:- info([ :- info([
version is 1.1, version is 1.2,
date is 2004/5/9, date is 2004/8/15,
author is 'Esteban Zimanyi, Paulo Moura', author is 'Esteban Zimanyi, Paulo Moura',
comment is 'Enables the representation of relations between independent objects.']). comment is 'Enables the representation of relations between independent objects.']).
:- uses(before_event_registry). :- uses(before_event_registry).
:- uses(after_event_registry). :- uses(after_event_registry).
:- uses(list). :- uses(list,
[length/2, member/2, memberchk/2, nth1/3, same_length/2]).
tuple(Tuple) :- tuple(Tuple) :-
@ -33,7 +34,7 @@
add_tuple(Tuple) :- add_tuple(Tuple) :-
::descriptor(Descriptor), ::descriptor(Descriptor),
\+ list::same_length(Tuple, Descriptor), \+ same_length(Tuple, Descriptor),
self(Self), self(Self),
sender(Sender), sender(Sender),
throw(error(invalid_length, Self::add_tuple(Tuple), Sender)). throw(error(invalid_length, Self::add_tuple(Tuple), Sender)).
@ -49,8 +50,8 @@
add_tuple(Tuple) :- add_tuple(Tuple) :-
::descriptor(Descriptor), ::descriptor(Descriptor),
list::nth1(Position, Tuple, Object), nth1(Position, Tuple, Object),
list::nth1(Position, Descriptor, Role), nth1(Position, Descriptor, Role),
::cardinality(Role, _, Maximum), ::cardinality(Role, _, Maximum),
::plays_role_n_times(Object, Role, Number), ::plays_role_n_times(Object, Role, Number),
Maximum = Number, Maximum = Number,
@ -60,8 +61,8 @@
add_tuple(Tuple) :- add_tuple(Tuple) :-
::descriptor(Descriptor), ::descriptor(Descriptor),
list::nth1(Position, Tuple, Object), nth1(Position, Tuple, Object),
list::nth1(Position, Descriptor, Role), nth1(Position, Descriptor, Role),
::domain(Role, Domain), ::domain(Role, Domain),
(Domain::strict_instance -> (Domain::strict_instance ->
\+ Domain::valid(Object) \+ Domain::valid(Object)
@ -79,7 +80,7 @@
make_tuple_template([], [], _, []). make_tuple_template([], [], _, []).
make_tuple_template([Object| Objects], [Role| Roles], Key, [Var| Rest]) :- make_tuple_template([Object| Objects], [Role| Roles], Key, [Var| Rest]) :-
(list::member(Role, Key) -> (member(Role, Key) ->
Var = Object Var = Object
; ;
true), true),
@ -94,8 +95,8 @@
remove_tuple(Tuple) :- remove_tuple(Tuple) :-
::descriptor(Descriptor), ::descriptor(Descriptor),
list::nth1(Position, Tuple, Object), nth1(Position, Tuple, Object),
list::nth1(Position, Descriptor, Role), nth1(Position, Descriptor, Role),
::cardinality(Role, Minimum, _), ::cardinality(Role, Minimum, _),
::plays_role_n_times(Object, Role, Number), ::plays_role_n_times(Object, Role, Number),
Minimum = Number, Minimum = Number,
@ -115,34 +116,34 @@
number_of_tuples(Number) :- number_of_tuples(Number) :-
findall(1, ::tuple_(_), List), findall(1, ::tuple_(_), List),
list::length(List, Number). length(List, Number).
plays_roles(Object, Roles) :- plays_roles(Object, Roles) :-
::descriptor(Descriptor), ::descriptor(Descriptor),
setof(Role, setof(Role,
Tuple^Position^ (::tuple(Tuple), Tuple^Position^ (::tuple(Tuple),
list::member(Object, Tuple), member(Object, Tuple),
list::nth1(Position, Tuple, Object), nth1(Position, Tuple, Object),
once(list::nth1(Position, Descriptor, Role))), once(nth1(Position, Descriptor, Role))),
Roles). Roles).
plays_role_in_tuple(Object, Role, Tuple) :- plays_role_in_tuple(Object, Role, Tuple) :-
::descriptor(Descriptor), ::descriptor(Descriptor),
::tuple(Tuple), ::tuple(Tuple),
list::nth1(Position, Tuple, Object), nth1(Position, Tuple, Object),
list::nth1(Position, Descriptor, Role). nth1(Position, Descriptor, Role).
plays_role_n_times(Object, Role, Number) :- plays_role_n_times(Object, Role, Number) :-
::descriptor(Descriptor), ::descriptor(Descriptor),
list::nth1(Position, Descriptor, Role), nth1(Position, Descriptor, Role),
setof(Tuple, setof(Tuple,
(::tuple(Tuple), (::tuple(Tuple),
list::nth1(Position, Tuple, Object)), nth1(Position, Tuple, Object)),
Tuples), Tuples),
list::length(Tuples, Number). length(Tuples, Number).
domains(Domains) :- domains(Domains) :-
@ -193,7 +194,7 @@
degree(Degree) :- degree(Degree) :-
::descriptor_(Descriptor), ::descriptor_(Descriptor),
list::length(Descriptor, Degree). length(Descriptor, Degree).
set_descriptor(Descriptor) :- set_descriptor(Descriptor) :-
@ -258,8 +259,8 @@
valid_keys([Key| Keys], Descriptor) :- valid_keys([Key| Keys], Descriptor) :-
forall( forall(
list::member(Role, Key), member(Role, Key),
list::memberchk(Role, Descriptor)), memberchk(Role, Descriptor)),
valid_keys(Keys, Descriptor). valid_keys(Keys, Descriptor).
@ -294,7 +295,7 @@
set_delete_options(Options) :- set_delete_options(Options) :-
::descriptor(Descriptor), ::descriptor(Descriptor),
\+ list::same_length(Options, Descriptor), \+ same_length(Options, Descriptor),
self(Self), self(Self),
sender(Sender), sender(Sender),
throw(error(invalid_length, Self::set_delete_options(Options), Sender)). throw(error(invalid_length, Self::set_delete_options(Options), Sender)).
@ -413,7 +414,7 @@
del_monitors([Object| Objects]) :- del_monitors([Object| Objects]) :-
((instantiates_class(Object, Class), ((instantiates_class(Object, Class),
\+ (::tuple(Other), list::member(Object, Other))) -> \+ (::tuple(Other), member(Object, Other))) ->
self(Self), self(Self),
before_event_registry::del_monitors(Class, delete(Object, _), _, Self) before_event_registry::del_monitors(Class, delete(Object, _), _, Self)
; ;

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -3,9 +3,16 @@
instantiates(heuristic_state_space)). instantiates(heuristic_state_space)).
:- uses(list). :- info([
:- uses(numberlist). version is 1.1,
:- uses(set). author is 'Paulo Moura',
date is 2004/8/15,
comment is 'Bridge puzzle.']).
:- uses(list, [append/3]).
:- uses(numberlist, [min/2, max/2]).
:- uses(set, [insert/3, insert_all/3, select/3]).
initial_state(start, ([], right, [1,3,6,8,12])). initial_state(start, ([], right, [1,3,6,8,12])).
@ -15,32 +22,32 @@
next_state((Left1, left, Right1), (Left2, right, Right2), Slower) :- % two persons next_state((Left1, left, Right1), (Left2, right, Right2), Slower) :- % two persons
list::append(List, [Person1| Persons], Left1), append(List, [Person1| Persons], Left1),
set::select(Person2, Persons, Others), select(Person2, Persons, Others),
list::append(List, Others, Left2), append(List, Others, Left2),
set::insert_all([Person1, Person2], Right1, Right2), insert_all([Person1, Person2], Right1, Right2),
(Person1 > Person2 -> (Person1 > Person2 ->
Slower = Person1 Slower = Person1
; ;
Slower = Person2). Slower = Person2).
next_state((Left1, right, Right1), (Left2, left, Right2), Slower) :- % two persons next_state((Left1, right, Right1), (Left2, left, Right2), Slower) :- % two persons
list::append(List, [Person1| Persons], Right1), append(List, [Person1| Persons], Right1),
set::select(Person2, Persons, Others), select(Person2, Persons, Others),
list::append(List, Others, Right2), append(List, Others, Right2),
set::insert_all([Person1, Person2], Left1, Left2), insert_all([Person1, Person2], Left1, Left2),
(Person1 > Person2 -> (Person1 > Person2 ->
Slower = Person1 Slower = Person1
; ;
Slower = Person2). Slower = Person2).
next_state((Left1, left, Right1), (Left2, right, Right2), Person) :- % one person next_state((Left1, left, Right1), (Left2, right, Right2), Person) :- % one person
set::select(Person, Left1, Left2), select(Person, Left1, Left2),
set::insert(Right1, Person, Right2). insert(Right1, Person, Right2).
next_state((Left1, right, Right1), (Left2, left, Right2), Person) :- % one person next_state((Left1, right, Right1), (Left2, left, Right2), Person) :- % one person
set::select(Person, Right1, Right2), select(Person, Right1, Right2),
set::insert(Left1, Person, Left2). insert(Left1, Person, Left2).
heuristic((Left, Lamp, Right), Heuristic) :- heuristic((Left, Lamp, Right), Heuristic) :-

View File

@ -4,13 +4,13 @@
:- info([ :- info([
version is 1.0, version is 1.1,
author is 'Paulo Moura', author is 'Paulo Moura',
date is 1998/3/23, date is 2004/8/15,
comment is 'Eight puzzle heuristic state space search problem.']). comment is 'Eight puzzle heuristic state space search problem.']).
:- uses(list). :- uses(list, [member/2]).
initial_state(four_steps, [2/2,1/3,3/2,2/3,3/3,3/1,2/1,1/1,1/2]). initial_state(four_steps, [2/2,1/3,3/2,2/3,3/3,3/1,2/1,1/1,1/2]).
@ -24,10 +24,10 @@
print_state([S0,S1,S2,S3,S4,S5,S6,S7,S8]) :- print_state([S0,S1,S2,S3,S4,S5,S6,S7,S8]) :-
list::member(Y, [3, 2, 1]), member(Y, [3, 2, 1]),
nl, nl,
list::member(X, [1, 2, 3]), member(X, [1, 2, 3]),
list::member(Tile-X/Y, [' '-S0,1-S1,2-S2,3-S3,4-S4,5-S5,6-S6,7-S7,8-S8]), member(Tile-X/Y, [' '-S0,1-S1,2-S2,3-S3,4-S4,5-S5,6-S6,7-S7,8-S8]),
write(Tile), write(Tile),
fail. fail.

View File

@ -4,21 +4,22 @@
:- info([ :- info([
version is 1.0, version is 1.1,
author is 'Paulo Moura', author is 'Paulo Moura',
date is 1998/3/23, date is 2004/8/15,
comment is 'Hill climbing heuristic state space search strategy.', comment is 'Hill climbing heuristic state space search strategy.',
parnames is ['Threshold']]). parnames is ['Threshold']]).
:- uses(list). :- uses(list,
[member/2, reverse/2, sort/2]).
:- private(hill/7). :- private(hill/7).
search(Space, State, Threshold, Solution, Cost) :- search(Space, State, Threshold, Solution, Cost) :-
hill(Space, State, Threshold, [], Path, 0, Cost), hill(Space, State, Threshold, [], Path, 0, Cost),
list::reverse(Path, Solution). reverse(Path, Solution).
hill(Space, State, _, Path, [State| Path], Cost, Cost) :- hill(Space, State, _, Path, [State| Path], Cost, Cost) :-
@ -28,12 +29,12 @@
findall( findall(
(Estimate, Cost, Next), (Estimate, Cost, Next),
(Space::next_state(State, Next, Cost), (Space::next_state(State, Next, Cost),
\+ list::member(Next, [State| Path]), \+ member(Next, [State| Path]),
Space::heuristic(Next, Guess), Space::heuristic(Next, Guess),
Estimate is Guess + Cost), Estimate is Guess + Cost),
States), States),
list::sort(States, SortedStates), sort(States, SortedStates),
list::member((_, Cost2, Next2), SortedStates), member((_, Cost2, Next2), SortedStates),
SoFar2 is SoFar + Cost2, SoFar2 is SoFar + Cost2,
SoFar2 =< Threshold, SoFar2 =< Threshold,
hill(Space, Next2, Threshold, [State| Path], Solution, SoFar2, Total). hill(Space, Next2, Threshold, [State| Path], Solution, SoFar2, Total).

View File

@ -10,7 +10,7 @@
comment is 'Missionaries and cannibals heuristic state space search problem.']). comment is 'Missionaries and cannibals heuristic state space search problem.']).
:- uses(loop). :- uses(loop, [forto/3]).
initial_state(start, ((3,3), left, (0,0))). initial_state(start, ((3,3), left, (0,0))).
@ -20,14 +20,14 @@
print_state(((Me,Ce), B, (Md,Cd))) :- print_state(((Me,Ce), B, (Md,Cd))) :-
loop::forto(1, Me, write('M')), forto(1, Me, write('M')),
loop::forto(1, Ce, write('C')), forto(1, Ce, write('C')),
(B = left -> (B = left ->
write('.<__>..........') write('.<__>..........')
; ;
write('..........<__>.')), write('..........<__>.')),
loop::forto(1, Md, write('M')), forto(1, Md, write('M')),
loop::forto(1, Cd, write('C')), forto(1, Cd, write('C')),
nl. nl.

View File

@ -4,18 +4,18 @@
:- info([ :- info([
version is 1.0, version is 1.1,
author is 'Paulo Moura', author is 'Paulo Moura',
date is 1998/3/23, date is 2004/8/15,
comment is 'Performance monitor for state space searches.']). comment is 'Performance monitor for state space searches.']).
:- uses(event_registry). :- uses(event_registry).
:- uses(before_event_registry). :- uses(before_event_registry).
:- uses(after_event_registry). :- uses(after_event_registry).
:- uses(list). :- uses(list, [length/2]).
:- uses(numberlist). :- uses(numberlist, [min/2, max/2, sum/2]).
:- uses(time). :- uses(time, [cpu_time/1]).
:- private(transitions/3). :- private(transitions/3).
@ -71,7 +71,7 @@
transitions(Number) :- transitions(Number) :-
findall(N, ::transitions(_, _, N), List), findall(N, ::transitions(_, _, N), List),
numberlist::sum(List, Number). sum(List, Number).
time(Time) :- time(Time) :-
@ -85,12 +85,12 @@
Length, Length,
(::transitions(State1, _, _), (::transitions(State1, _, _),
findall(State2, ::transitions(State1, State2, _), States2), findall(State2, ::transitions(State1, State2, _), States2),
list::length(States2, Length)), length(States2, Length)),
Lengths), Lengths),
list::min(Lengths, Minimum), min(Lengths, Minimum),
list::max(Lengths, Maximum), max(Lengths, Maximum),
numberlist::sum(Lengths, Sum), sum(Lengths, Sum),
list::length(Lengths, Length), length(Lengths, Length),
Average is Sum / Length. Average is Sum / Length.
@ -114,13 +114,13 @@
before(_, solve(_, _, _), _) :- before(_, solve(_, _, _), _) :-
!, !,
time::cpu_time(Time), cpu_time(Time),
::retractall(start_time(_)), ::retractall(start_time(_)),
::asserta(start_time(Time)). ::asserta(start_time(Time)).
before(_, solve(_, _, _, _), _) :- before(_, solve(_, _, _, _), _) :-
!, !,
time::cpu_time(Time), cpu_time(Time),
::retractall(start_time(_)), ::retractall(start_time(_)),
::asserta(start_time(Time)). ::asserta(start_time(Time)).
@ -145,19 +145,19 @@
after(_, solve(_, _, Solution), _) :- after(_, solve(_, _, Solution), _) :-
!, !,
time::cpu_time(Time), cpu_time(Time),
::retractall(end_time(_)), ::retractall(end_time(_)),
::asserta(end_time(Time)), ::asserta(end_time(Time)),
list::length(Solution, Length), length(Solution, Length),
::retractall(solution_length(_)), ::retractall(solution_length(_)),
::asserta(solution_length(Length)). ::asserta(solution_length(Length)).
after(_, solve(_, _, Solution, _), _) :- after(_, solve(_, _, Solution, _), _) :-
!, !,
time::cpu_time(Time), cpu_time(Time),
::retractall(end_time(_)), ::retractall(end_time(_)),
::asserta(end_time(Time)), ::asserta(end_time(Time)),
list::length(Solution, Length), length(Solution, Length),
::retractall(solution_length(_)), ::retractall(solution_length(_)),
::asserta(solution_length(Length)). ::asserta(solution_length(Length)).

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,7 +1,7 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -1,6 +1,6 @@
================================================================= =================================================================
Logtalk - Object oriented extension to Prolog Logtalk - Object oriented extension to Prolog
Release 2.19.1 Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved. Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
================================================================= =================================================================

View File

@ -8,7 +8,7 @@
<head> <head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Logtalk 2.19.1 Documentation</title> <title>Logtalk 2.20.0 Documentation</title>
<link rel="stylesheet" href="styles.css" type="text/css" /> <link rel="stylesheet" href="styles.css" type="text/css" />
</head> </head>
@ -18,7 +18,7 @@
&nbsp; &nbsp;
</div> </div>
<h1>Logtalk 2.19.1 Documentation</h1> <h1>Logtalk 2.20.0 Documentation</h1>
<ul> <ul>
<li><h2><a href="userman/index.html">User Manual</a></h2></li> <li><h2><a href="userman/index.html">User Manual</a></h2></li>
@ -37,7 +37,7 @@ Copyright &copy; <a href="mailto:pmoura@logtalk.org">Paulo Moura</a> &mdash; <a
</div> </div>
<div class="footer"> <div class="footer">
<p><span class="bleft"><a href="http://validator.w3.org/check/referer">XHTML</a> + <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></span><span class="bright">Last updated on: July 28, 2004</span></p> <p><span class="bleft"><a href="http://validator.w3.org/check/referer">XHTML</a> + <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></span><span class="bright">Last updated on: August 14, 2004</span></p>
</div> </div>
</body> </body>

View File

@ -52,7 +52,7 @@
</blockquote> </blockquote>
<div class="navbottom"> <div class="navbottom">
<a href="../directives/public1.html">previous</a> | <a href="../../glossary.html">glossary</a> | <a href="current_object1.html">next</a> <a href="../directives/uses2.html">previous</a> | <a href="../../glossary.html">glossary</a> | <a href="current_object1.html">next</a>
</div> </div>
<div class="copyright"> <div class="copyright">
@ -60,7 +60,7 @@ Copyright &copy; <a href="mailto:pmoura@logtalk.org">Paulo Moura</a> &mdash; <a
</div> </div>
<div class="footer"> <div class="footer">
<p><span class="bleft"><a href="http://validator.w3.org/check/referer">XHTML</a> + <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></span><span class="bright">Last updated on: December 23, 2003</span></p> <p><span class="bleft"><a href="http://validator.w3.org/check/referer">XHTML</a> + <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></span><span class="bright">Last updated on: August 14, 2003</span></p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -50,7 +50,7 @@ public([Functor1/Arity1, Functor2/Arity2, ...])</pre>
</blockquote> </blockquote>
<div class="navbottom"> <div class="navbottom">
<a href="protected1.html">previous</a> | <a href="../../glossary.html">glossary</a> | <a href="../builtins/current_category1.html">next</a> <a href="protected1.html">previous</a> | <a href="../../glossary.html">glossary</a> | <a href="uses2.html">next</a>
</div> </div>
<div class="copyright"> <div class="copyright">
@ -58,7 +58,7 @@ Copyright &copy; <a href="mailto:pmoura@logtalk.org">Paulo Moura</a> &mdash; <a
</div> </div>
<div class="footer"> <div class="footer">
<p><span class="bleft"><a href="http://validator.w3.org/check/referer">XHTML</a> + <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></span><span class="bright">Last updated on: July 23, 2004</span></p> <p><span class="bleft"><a href="http://validator.w3.org/check/referer">XHTML</a> + <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></span><span class="bright">Last updated on: August 14, 2004</span></p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -24,18 +24,16 @@
<h4>Description</h4> <h4>Description</h4>
<blockquote> <blockquote>
<pre>uses(Object) <pre>uses(Object)</pre>
uses(Object1, Object2, ...)
uses([Object1, Object2, ...])</pre>
<p> <p>
Declares the object(s) that are sent messages by predicates defined in the category or object containing the directive. Declares an object that receives messages from predicates defined in the category or object containing the directive. In the current Logtalk version, this is a non-operational directive, which may be used for documentation. Nevertheless, the compiler will warn you of any unknown object referenced using this directive when an entity containing it is compiled. In a forthcoming release, this directive will likely be used to support object namespaces.
</p> </p>
</blockquote> </blockquote>
<h4>Template and modes</h4> <h4>Template and modes</h4>
<blockquote> <blockquote>
<pre>uses(+object_identifiers)</pre> <pre>uses(+object_identifier)</pre>
</blockquote> </blockquote>
@ -46,7 +44,7 @@ uses([Object1, Object2, ...])</pre>
</blockquote> </blockquote>
<div class="navbottom"> <div class="navbottom">
<a href="protocol1_2.html">previous</a> | <a href="../../glossary.html">glossary</a> | <a href="discontiguous1.html">next</a> <a href="protocol1_2.html">previous</a> | <a href="../../glossary.html">glossary</a> | <a href="uses2.html">next</a>
</div> </div>
<div class="copyright"> <div class="copyright">
@ -54,7 +52,7 @@ Copyright &copy; <a href="mailto:pmoura@logtalk.org">Paulo Moura</a> &mdash; <a
</div> </div>
<div class="footer"> <div class="footer">
<p><span class="bleft"><a href="http://validator.w3.org/check/referer">XHTML</a> + <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></span><span class="bright">Last updated on: December 23, 2003</span></p> <p><span class="bleft"><a href="http://validator.w3.org/check/referer">XHTML</a> + <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></span><span class="bright">Last updated on: August 14, 2004</span></p>
</div> </div>
</body> </body>
</html> </html>

Some files were not shown because too many files have changed in this diff Show More