Logtalk 2.26.2 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1486 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
f5002fa37f
commit
9f1b358c04
147
Logtalk/INSTALL
147
Logtalk/INSTALL
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
@ -19,7 +19,7 @@ need of patching both Logtalk and Prolog compilers to workaround the lack of
|
|||||||
strong Prolog standards.
|
strong Prolog standards.
|
||||||
|
|
||||||
|
|
||||||
1. LOGTALK INSTALLATION
|
1. LOGTALK BASIC INSTALLATION
|
||||||
|
|
||||||
Installing Logtalk can be as simple as decompressing the downloaded archive
|
Installing Logtalk can be as simple as decompressing the downloaded archive
|
||||||
and copying the resulting directory to a suitable location. This location
|
and copying the resulting directory to a suitable location. This location
|
||||||
@ -46,35 +46,26 @@ directory can be copied to any location that its accessible by all the users
|
|||||||
for some reason, not feasible or desired).
|
for some reason, not feasible or desired).
|
||||||
|
|
||||||
The "scripts" sub-directory contains shell scripts for easy installation of
|
The "scripts" sub-directory contains shell scripts for easy installation of
|
||||||
Logtalk on MacOS X, Windows, Linux, and Unix-like operating systems (see the
|
Logtalk on MacOS X, Windows, Linux, and Unix-like (POSIX) operating systems
|
||||||
"scripts/NOTES" file for details).
|
(see the "scripts/NOTES" file for details).
|
||||||
|
|
||||||
After running the appropriated script for your operating-system, the second
|
>> POSIX systems installation (starting from the Logtalk directory):
|
||||||
step will be to run the Prolog integration scripts that you find on the
|
|
||||||
"scripts" sub-directory, assuming that your favorite Prolog compilers are
|
% cd scripts
|
||||||
supported (if that is not the case, don't worry: just follow the steps
|
% sudo ./lgt_install.sh
|
||||||
described in the "QUICK_START" file). The third step is for each user to
|
|
||||||
make a local copy of the Logtalk user-modifiable files to its home directory.
|
>> Windows installation (starting from the Logtalk directory):
|
||||||
This allows each user to easily customize Logtalk to its needs. These copies
|
|
||||||
can be easily made by instructing end-users to simply run the shell command
|
C:\logtalk> cd scripts
|
||||||
"cplgtdirs" (the corresponding scripts are described in the "scripts/NOTES"
|
C:\logtalk> cscript lgt_install.js
|
||||||
file).
|
RESTART
|
||||||
|
|
||||||
The "scripts/lgt_install.*" installation scripts make all files read-only in
|
The "scripts/lgt_install.*" installation scripts make all files read-only in
|
||||||
order to avoid user tempering. This is a convenient setup for computer labs,
|
order to avoid user tempering. This is a convenient setup for computer labs,
|
||||||
given that making directories world-writable is a security risk. Of course,
|
given that making directories world-writable is a security risk.
|
||||||
the local copies made by the "cplgtdirs" scripts have both read and write
|
|
||||||
permissions for the user running the script.
|
|
||||||
|
|
||||||
When used with one of the Prolog compilers for which an integration script
|
|
||||||
is provided on the "scripts" directory, this setup as the advantage of
|
|
||||||
allowing each end-user to independently customize default compilation options
|
|
||||||
and library paths.
|
|
||||||
|
|
||||||
|
|
||||||
2. LOGTALK CONFIGURATION
|
2. SETTING LOGTALK ENVIRONMENT VARIABLES
|
||||||
|
|
||||||
2.1 Setting environment variables
|
|
||||||
|
|
||||||
You need to set two environment variables, LOGTALKHOME and LOGTALKUSER. The
|
You need to set two environment variables, LOGTALKHOME and LOGTALKUSER. The
|
||||||
environment variable LOGTALKHOME should point to the Logtalk installation
|
environment variable LOGTALKHOME should point to the Logtalk installation
|
||||||
@ -87,19 +78,19 @@ you have full permissions to the Logtalk installation directory. In addition,
|
|||||||
you may want to add the Logtalk sub-directory "xml", which contains useful
|
you may want to add the Logtalk sub-directory "xml", which contains useful
|
||||||
scripts for processing XML documenting files, to your execution path.
|
scripts for processing XML documenting files, to your execution path.
|
||||||
|
|
||||||
* Unix and Unix-like systems:
|
>> POSIX systems:
|
||||||
|
|
||||||
If you use a csh shell, add the following line to your ~/.cshrc file:
|
If you use a csh shell, add the following line to your ~/.cshrc file:
|
||||||
|
|
||||||
setenv LOGTALKHOME /your/logtalk/installation/directory
|
setenv LOGTALKHOME /your/logtalk/installation/directory
|
||||||
setenv LOGTALKUSER $HOME/logtalk
|
setenv LOGTALKUSER $HOME/logtalk
|
||||||
setenv PATH $PATH:$LOGTALKUSER/xml:$LOGTALKHOME/scripts
|
setenv PATH $PATH:$LOGTALKHOME/xml:$LOGTALKHOME/scripts
|
||||||
|
|
||||||
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/logtalk/installation/directory
|
LOGTALKHOME=/your/logtalk/installation/directory
|
||||||
LOGTALKUSER=$HOME/logtalk
|
LOGTALKUSER=$HOME/logtalk
|
||||||
PATH=$PATH:$LOGTALKUSER/xml:$LOGTALKHOME/scripts
|
PATH=$PATH:$LOGTALKHOME/xml:$LOGTALKHOME/scripts
|
||||||
export PATH LOGTALKHOME LOGTALKUSER
|
export PATH LOGTALKHOME LOGTALKUSER
|
||||||
|
|
||||||
When using the provided shell script for installing Logtalk, a symbolic link
|
When using the provided shell script for installing Logtalk, a symbolic link
|
||||||
@ -108,23 +99,66 @@ named "logtalk". In this case, you may use this symbolic link to define the
|
|||||||
LOGTALKHOME environment variable in order to avoid breaking it when upgrading
|
LOGTALKHOME environment variable in order to avoid breaking it when upgrading
|
||||||
Logtalk.
|
Logtalk.
|
||||||
|
|
||||||
* Windows systems:
|
>> 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\logtalk\installation\folder\
|
|
||||||
SET LOGTALKUSER=%HOMEPATH%\logtalk
|
|
||||||
|
|
||||||
In Windows 2000/XP, environment variables are defined using the System
|
In Windows 2000/XP, environment variables are defined using the System
|
||||||
properties control panel (if you are a system administrator, you should
|
properties control panel. If you are a system administrator, the "scripts/
|
||||||
use the JScript install script provided in the "scripts" sub-directory;
|
lgt_install.js" JScript install script sets the LOGTALKHOME environment
|
||||||
this script sets the LOGTALKHOME environment variable for all users and
|
variable for all users and also sets the LOGTALKUSER environment variable
|
||||||
also sets the LOGTALKUSER environment variable for the administrator user
|
for the administrator user running the script.
|
||||||
running the script).
|
|
||||||
|
|
||||||
|
|
||||||
2.2 Setting library paths
|
3. CREATING NEW PROLOG TOP-LEVELS FOR AUTOMATIC LOADING OF LOGTALK
|
||||||
|
|
||||||
|
Most Prolog compilers allows the user to define an initialization file that
|
||||||
|
is automatically consulted at startup. This initialization file may contain
|
||||||
|
directives for loading other files, such as the Logtalk configuration file
|
||||||
|
and the Logtalk compiler. The "$LOGTALKHOME/scripts" sub-directory contains
|
||||||
|
several scripts (named "make_*lgt.*") for automating the creation of these
|
||||||
|
initialization files for some Prolog compilers. In addition, be sure to read
|
||||||
|
the "configs/NOTES" file notes on the Prolog compilers that you intend to use.
|
||||||
|
There are also "makeall_lgt.*" scripts that try to run all the individual
|
||||||
|
"make_*lgt.*" scripts:
|
||||||
|
|
||||||
|
>> POSIX systems:
|
||||||
|
|
||||||
|
% cd $LOGTALKHOME/scripts
|
||||||
|
% sudo ./makeall_lgt.sh
|
||||||
|
|
||||||
|
>> Windows:
|
||||||
|
|
||||||
|
C:\> cd %LOGTALKHOME%\scripts
|
||||||
|
C:\> cscript makeall_lgt.js
|
||||||
|
|
||||||
|
This assumes that your favorite Prolog compilers are supported by the
|
||||||
|
"make_*lgt.*" scripts. If that is not the case, don't worry: just follow
|
||||||
|
the steps described in the "QUICK_START" file.
|
||||||
|
|
||||||
|
|
||||||
|
4. COPYING THE LOGTALK USER-MODIFIABLE FILES TO USERS HOME DIRECTORIES
|
||||||
|
|
||||||
|
Each user must make a local copy of the Logtalk user-modifiable files to its
|
||||||
|
home directory. This setup allows each user to easily and independently
|
||||||
|
customize Logtalk to its needs. These copies can be easily made by instructing
|
||||||
|
end-users to simply run the shell scripts "cplgtdirs.*" (which are described
|
||||||
|
in the "scripts/NOTES" file).
|
||||||
|
|
||||||
|
>> POSIX systems:
|
||||||
|
|
||||||
|
% cplgtdirs
|
||||||
|
|
||||||
|
>> Windows:
|
||||||
|
|
||||||
|
C:\> cplgtdirs
|
||||||
|
|
||||||
|
The local copies made by the "cplgtdirs" scripts have both read and write
|
||||||
|
permissions for the user running the script. When used with one of the
|
||||||
|
Prolog compilers for which an integration script is provided on the "scripts"
|
||||||
|
directory, this setup as the advantage of allowing each end-user to
|
||||||
|
independently customize default compilation options and library paths.
|
||||||
|
|
||||||
|
|
||||||
|
5. SETTING LIBRARY PATHS
|
||||||
|
|
||||||
In Logtalk, a library is simply a directory containing source files. Library
|
In Logtalk, a library is simply a directory containing source files. Library
|
||||||
paths can be declared using a dynamic predicate. This allows compiling and
|
paths can be declared using a dynamic predicate. This allows compiling and
|
||||||
@ -138,7 +172,7 @@ installation and your Prolog compiler and operating-system requirements. For
|
|||||||
more details, see the file "$LOGTALKUSER/libpaths/NOTES".
|
more details, see the file "$LOGTALKUSER/libpaths/NOTES".
|
||||||
|
|
||||||
|
|
||||||
2.3 Customizing Prolog configuration files
|
6. CUSTOMIZING PROLOG CONFIGURATION FILES
|
||||||
|
|
||||||
Logtalk interfaces with a specific Prolog compiler via a configuration file
|
Logtalk interfaces with a specific Prolog compiler via a configuration file
|
||||||
that can be found on the "$LOGTALKUSER/configs" directory. These configuration
|
that can be found on the "$LOGTALKUSER/configs" directory. These configuration
|
||||||
@ -147,29 +181,18 @@ used by Logtalk when compiling source files. For a full description of these
|
|||||||
default flags, consult the "Running and debugging Logtalk programs" section of
|
default flags, consult the "Running and debugging Logtalk programs" section of
|
||||||
the User Manual. Some of the default flags that you may want to change are:
|
the User Manual. Some of the default flags that you may want to change are:
|
||||||
"smart_compilation", "startup_message", "portability", "underscore_vars",
|
"smart_compilation", "startup_message", "portability", "underscore_vars",
|
||||||
"altdirs", and the set of documentation-related flags ("xml", "xsl", "xmlspec",
|
"altdirs", and the set of documentation-related flags ("xmldocs", "xslfile",
|
||||||
and "doctype"). Be sure to read the "$LOGTALKUSER/configs/NOTES" file for
|
"xmlspec", and "xmlsref"). Be sure to read the "$LOGTALKUSER/configs/NOTES"
|
||||||
Prolog specific notes; some Prolog compilers do not support the whole range of
|
file for Prolog specific notes; some Prolog compilers do not support the whole
|
||||||
compilation flags.
|
range of compilation flag values.
|
||||||
|
|
||||||
|
|
||||||
2.4 Customizing documentation processing scripts and supporting files
|
7. CUSTOMIZING DOCUMENTATION PROCESSING SCRIPTS AND SUPPORTING FILES
|
||||||
|
|
||||||
Logtalk provides, in the "$LOGTALKUSER/xml" directory, a set of shell scripts,
|
Logtalk provides, in the "$LOGTALKUSER/xml" directory, a set of shell scripts,
|
||||||
CSS and XSLT style-sheets, and DTD and XML Schema files for processing the XML
|
CSS and XSLT style-sheets, and DTD and XML Schema files for processing the XML
|
||||||
documenting files that are automatically generated when you compile source
|
documenting files that are automatically generated when you compile source
|
||||||
files. You may want to customize these scripts and their supporting files to
|
files. You may want to customize these CSS and XSLT files to modify the layout
|
||||||
modify the layout or style of the resulting PDF/(X)HTML files or to write new
|
or style of the resulting PDF/(X)HTML files or to write new scripts and
|
||||||
scripts and transformations to generate other formats. For more details, see
|
transformations to generate other formats. For more details, see the file
|
||||||
the file "$LOGTALKUSER/xml/NOTES".
|
"$LOGTALKUSER/xml/NOTES".
|
||||||
|
|
||||||
|
|
||||||
3. CREATING NEW PROLOG TOP-LEVELS FOR AUTOMATIC LOADING OF LOGTALK
|
|
||||||
|
|
||||||
Most Prolog compilers allows the user to define an initialization file that
|
|
||||||
is automatically consulted at startup. This initialization file may contain
|
|
||||||
directives for loading other files, such as the Logtalk configuration file
|
|
||||||
and the Logtalk compiler. The "$LOGTALKHOME/scripts" sub-directory contains
|
|
||||||
several scripts for automating the creation of these initialization files
|
|
||||||
for some Prolog compilers. In addition, be sure to read the "configs/NOTES"
|
|
||||||
file notes on the Prolog compilers that you intend to use.
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
@ -68,9 +68,9 @@ sub-directory.
|
|||||||
|
|
||||||
2. Read the example NOTES file for a description of the example.
|
2. Read the example NOTES file for a description of the example.
|
||||||
|
|
||||||
3. Open SCRIPT file for instructions on how to load the example and for sample
|
3. Open the SCRIPT file for instructions on how to load the example and for
|
||||||
queries that you may try by copying-and-pasting or dragging-and-droping them
|
sample queries that you may try by copying-and-pasting or dragging-and-droping
|
||||||
on your Prolog interpreter top-level.
|
them on your Prolog interpreter top-level.
|
||||||
|
|
||||||
|
|
||||||
Ready to start writing your own programs?
|
Ready to start writing your own programs?
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
@ -31,8 +31,7 @@ stated.
|
|||||||
|
|
||||||
2. HOME OF LOGTALK PACKAGE
|
2. HOME OF LOGTALK PACKAGE
|
||||||
|
|
||||||
The latest release of the Logtalk package is always available at the
|
The latest release of the Logtalk package is always available at the URL:
|
||||||
URL:
|
|
||||||
|
|
||||||
http://www.logtalk.org/
|
http://www.logtalk.org/
|
||||||
|
|
||||||
@ -45,7 +44,7 @@ about Logtalk.
|
|||||||
To register as a Logtalk user either use the registration form found at
|
To register as a Logtalk user either use the registration form found at
|
||||||
the Logtalk web site or send an email message to:
|
the Logtalk web site or send an email message to:
|
||||||
|
|
||||||
registration@logtalk.org
|
registration@logtalk.org
|
||||||
|
|
||||||
with the following information:
|
with the following information:
|
||||||
|
|
||||||
@ -59,34 +58,36 @@ platforms (mac, pc, unix,...) (optional)
|
|||||||
Logtalk support is available for registered users via email to
|
Logtalk support is available for registered users via email to
|
||||||
support@logtalk.org.
|
support@logtalk.org.
|
||||||
|
|
||||||
At the URL http://www.logtalk.org/bugs.html you can find a list of
|
At the URL http://www.logtalk.org/bugs.html you can find a list of known
|
||||||
known problems and download bug fixes. The latest news about Logtalk are
|
problems and download bug fixes. The latest news about Logtalk are
|
||||||
available at the URL http://www.logtalk.org/news.html.
|
available at the URL http://www.logtalk.org/news.html.
|
||||||
|
|
||||||
There is also a mailing list, logtalk, used to announce new releases and
|
There is also a mailing list, "logtalk", used to announce new releases and
|
||||||
bug fixes and for discussion between Logtalk users, that you can subscribe.
|
bug fixes and for discussion between registered Logtalk users, that you
|
||||||
For instructions on how to subscribe open the web page:
|
may subscribe. For instructions on how to subscribe, please visit the web
|
||||||
|
page:
|
||||||
|
|
||||||
http://sagitta.ci.uc.pt/mailman/listinfo.cgi/logtalk
|
http://lserv.ci.uc.pt/mailman/listinfo/logtalk
|
||||||
|
|
||||||
or send an email message to:
|
or send an email message to:
|
||||||
|
|
||||||
logtalk-request@list-serv.ci.uc.pt
|
logtalk-request@lserv.ci.uc.pt
|
||||||
|
|
||||||
with just the word "help" in the subject or in the message body.
|
with just the word "help" in the subject or in the message body.
|
||||||
|
|
||||||
|
|
||||||
5. INSTALLATION
|
5. INSTALLATION
|
||||||
|
|
||||||
Installing Logtalk is just a matter of uncompressing/unpacking the
|
Installing Logtalk is just a matter of uncompressing/unpacking the
|
||||||
distribution archive file for your operating system. You can install
|
distribution archive file for your operating system and running a
|
||||||
Logtalk in any directory that you find convenient. See the file INSTALL
|
few shell scripts. You may install Logtalk in any directory that
|
||||||
for detailed instructions on how to customize your working environment.
|
you find convenient. See the file INSTALL for detailed instructions
|
||||||
|
on how to customize your working environment.
|
||||||
|
|
||||||
See the user manual for a description of the source files organization
|
See the user manual for a description of the source files organization
|
||||||
and for using instructions (to read the user manual open the file
|
and for using instructions (to read the user manual open the file
|
||||||
"manuals/index.html" with a web browser). Most files are formatted using
|
"manuals/index.html" with a web browser). Most files are formatted
|
||||||
four-space tabs.
|
using four-space tabs.
|
||||||
|
|
||||||
|
|
||||||
6. QUICK START
|
6. QUICK START
|
||||||
@ -98,23 +99,18 @@ to run Logtalk, provided that your favorite Prolog compiler is supported.
|
|||||||
7. DOCUMENTATION
|
7. DOCUMENTATION
|
||||||
|
|
||||||
The reference and user manuals and the tutorial are provided in XHTML format
|
The reference and user manuals and the tutorial are provided in XHTML format
|
||||||
and can be found in the manuals directory.
|
and can be found in the "manuals" directory.
|
||||||
|
|
||||||
PDF versions of all documentation are also available as a separated download
|
The file RELEASE_NOTES contains descriptions of all Logtalk updates since the
|
||||||
from the Logtalk web site. The PDF files include page numbers, an index, and
|
first public version. Read it carefully if you have been using a previous
|
||||||
a table of contents and are available for printing in both A4 and US Letter
|
Logtalk version.
|
||||||
paper formats.
|
|
||||||
|
|
||||||
The file RELEASE_NOTES contains descriptions of the changes made in Logtalk
|
|
||||||
since the first public version. Read it carefully if you have been using a
|
|
||||||
previous Logtalk version.
|
|
||||||
|
|
||||||
|
|
||||||
8. UPGRADING
|
8. UPGRADING
|
||||||
|
|
||||||
If you have been using a previous Logtalk version read the file UPGRADING for
|
If you are upgrading from a previous Logtalk version, please check the file
|
||||||
instructions on how to upgrade your programs or your custom configuration
|
UPGRADING for instructions on how to upgrade your programs or your custom
|
||||||
files to run under this new version.
|
configuration files to run under this new version.
|
||||||
|
|
||||||
|
|
||||||
9. CITATIONS
|
9. CITATIONS
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
@ -10,6 +10,186 @@ RELEASE NOTES
|
|||||||
=============
|
=============
|
||||||
|
|
||||||
|
|
||||||
|
2.26.2 - December 20, 2005
|
||||||
|
|
||||||
|
Improved error-checking for the Logtalk compiler and for the grammar rule
|
||||||
|
translator.
|
||||||
|
|
||||||
|
Small performance improvements for message sending and for the built-in
|
||||||
|
database methods.
|
||||||
|
|
||||||
|
Corrected a bug on the implementation of the built-in methods phrase/2-3
|
||||||
|
for negated grammar rule bodies (thanks to Mats Carlsson for pointing the
|
||||||
|
error).
|
||||||
|
|
||||||
|
Removed the read-only compiler flag "iso_initialization_dir".
|
||||||
|
|
||||||
|
Corrected a compilation bug on the "metapredicates" example source file.
|
||||||
|
Corrected several bugs on the performance monitor of the "searching"
|
||||||
|
example.
|
||||||
|
|
||||||
|
Switched off default generation of XML documenting files for the "symdiff"
|
||||||
|
example in order to avoid file names compatibility problems on Windows.
|
||||||
|
|
||||||
|
Updated compatibility notes on B-Prolog 6.8 and Qu-Prolog 7.0. Added a
|
||||||
|
config file for the forthcoming SICStus Prolog 4.0 version (based only
|
||||||
|
on publicly available information). Updated the config file for Amzi!
|
||||||
|
Prolog to solve issues with predicate properties and to ensure that file
|
||||||
|
system utility predicates are loaded.
|
||||||
|
|
||||||
|
Added a config file for the current XSB CVS version and the corresponding
|
||||||
|
integration shell scripts (for both Windows and POSIX systems). Modified
|
||||||
|
the "cplgtdirs.*" shell scripts in order to make either links or copies of
|
||||||
|
the config files and the "libpaths.pl" file with the required ".P" file
|
||||||
|
name extension.
|
||||||
|
|
||||||
|
Improved integration scripts documentation and help screens.
|
||||||
|
|
||||||
|
Added a predicate for checking directory existence to the config files.
|
||||||
|
|
||||||
|
|
||||||
|
2.26.1 - November 28, 2005
|
||||||
|
|
||||||
|
Added a CSS style-sheet to the Logtalk XHTML documentation that can be
|
||||||
|
used with CSSToXSLFO to generate nicely formatted PDF files suitable for
|
||||||
|
printing with running headers and page numbers.
|
||||||
|
|
||||||
|
Updated the Logtalk XHTML documentation for compliance with the XHTML 1.1
|
||||||
|
standard.
|
||||||
|
|
||||||
|
Updated the "lgtxhtml.xsl" XSLT file in order to generate XHTML 1.1 files.
|
||||||
|
|
||||||
|
Added a new, generic "lgtpdf.xsl" XSLT file. Redefined the "lgtpdfa4.xsl"
|
||||||
|
and "lgtpdfus.xsl" files to import the "lgtpdf.xsl" file.
|
||||||
|
|
||||||
|
Added support for the Lunasil XSL-FO processor to the "lgt2pdf.*" shell
|
||||||
|
scripts.
|
||||||
|
|
||||||
|
Updated the "lgt2pdf.sh", "lgt2xml.sh", and "lgt2html.sh" shell scripts
|
||||||
|
in order to write a warning message when the current directory does not
|
||||||
|
contain any XML documenting file.
|
||||||
|
|
||||||
|
Added a definition for missing open/4 ISO Prolog predicate to the config
|
||||||
|
files of Open Prolog, LPA Prolog compilers, and MasterProlog.
|
||||||
|
|
||||||
|
|
||||||
|
2.26.0 - November 7, 2005
|
||||||
|
|
||||||
|
Added support for defining predicate aliases when using uses/2 directives
|
||||||
|
(using the format Predicate::Alias).
|
||||||
|
|
||||||
|
Added Prolog modules migration code allowing modules to be compiled as
|
||||||
|
objects and allowing messages to be sent to modules. Added a new "modules"
|
||||||
|
example.
|
||||||
|
|
||||||
|
Added a "Prolog Integration and Migration Guide" to the Logtalk
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
Added support for syntax coloring of common Prolog module directives to
|
||||||
|
the configuration files of the supported text editors.
|
||||||
|
|
||||||
|
Added support for using library aliases on the second argument of the
|
||||||
|
logtalk_library_path/2 predicate (using the format alias(path)).
|
||||||
|
|
||||||
|
Added support for ignoring, copying as-is, or rewriting proprietary Prolog
|
||||||
|
directives. The action to be taken is defined on a per-directive basis on
|
||||||
|
the config files.
|
||||||
|
|
||||||
|
Updated the config files of CIAO, ECLiPSe, SWI-Prolog, and YAP to define
|
||||||
|
actions for some proprietary directives in order to allow some or most of
|
||||||
|
the module libraries distributed with these compilers to be compiled as
|
||||||
|
objects.
|
||||||
|
|
||||||
|
Renamed some XML documentation-related compiler flags to more meaningful
|
||||||
|
names: "xml" -> "xmldocs", "xsl" -> "xslfile", and "doctype" -> "xmlsref".
|
||||||
|
No changes to the other flags or flag valid values.
|
||||||
|
|
||||||
|
Updated documenting scripts to use system-wide resources from LOGTALKHOME
|
||||||
|
and user-modifiable resources from LOGTALKUSER.
|
||||||
|
|
||||||
|
Updated "cplgtdirs.*" shell scripts to create links to the documenting
|
||||||
|
scripts and to the DTD and XML Schema specifications instead of making
|
||||||
|
local copies. Updated the "cplgtdirs.js" Windows JScript script to create
|
||||||
|
a link to the Logtalk manuals.
|
||||||
|
|
||||||
|
Changed generation of predicate compiled functors to add an underscore
|
||||||
|
between the original predicate functor and arity (further minimizing the
|
||||||
|
chance of name conflicts).
|
||||||
|
|
||||||
|
Improved compilation warning messages (separately handling plural and
|
||||||
|
singular forms).
|
||||||
|
|
||||||
|
Improved documentation of Windows JScript installation and integration
|
||||||
|
scripts.
|
||||||
|
|
||||||
|
Corrected a bug on the Logtalk built-in debugger on the processing of the
|
||||||
|
abort option at a leashed port (option was ignored instead of aborting the
|
||||||
|
debugging session).
|
||||||
|
|
||||||
|
Added an option to choose between a "verbose" or "compact" listing of the
|
||||||
|
default compilation flags at Logtalk startup (defined on the config files).
|
||||||
|
|
||||||
|
Improved CIAO integration scripts in order to suppress some (harmless)
|
||||||
|
warnings which are generated at first run.
|
||||||
|
|
||||||
|
Updated SWI-Prolog hook file ("swihook.pl") in order to support Logtalk
|
||||||
|
library notation when loading Logtalk files using the SWI-Prolog consult/1
|
||||||
|
predicate.
|
||||||
|
|
||||||
|
Corrected a bug on the implementation of the built-in method abolish/1
|
||||||
|
that prevented abolishing of dynamic predicates with arity zero.
|
||||||
|
|
||||||
|
Corrected a bug on the "gplgt" shell script generated by the make_gplgt.sh
|
||||||
|
shell script where the value of the LOGTALKHOME environment variable would
|
||||||
|
not be retrieved at runtime.
|
||||||
|
|
||||||
|
Removed config file for older versions of XSB (up to 2.6). Renamed the
|
||||||
|
config file for XSB 2.7.1 to simply "xsb.config".
|
||||||
|
|
||||||
|
Consolidated the source files of the "birds", "errors", "lpa", "lo",
|
||||||
|
"metainterpreters", "poem", "relations", "roots", and "symdiff" examples
|
||||||
|
into single source files. Updated the "searching" example to take advantage
|
||||||
|
of the uses/2 directive.
|
||||||
|
|
||||||
|
Removed outdated documenting shell scripts from the "xml" directory.
|
||||||
|
|
||||||
|
Corrected a bug when compiling a source file where the generated Prolog
|
||||||
|
file might not be properly closed when a compilation error occurs.
|
||||||
|
|
||||||
|
|
||||||
|
2.25.3 - September 12, 2005
|
||||||
|
|
||||||
|
Consolidated the source files of the examples "bricks", "dynpred", "mi",
|
||||||
|
"parametric", "points", "polygons", "reflection", "shapes", "sicstus",
|
||||||
|
and "viewpoints" into single source files.
|
||||||
|
|
||||||
|
Improved documentation on most example source files. Improved "parametric"
|
||||||
|
example by adding a new parametric objects and by illustrating alternative
|
||||||
|
ways of accessing object parameters.
|
||||||
|
|
||||||
|
Updated several config files with declarations for some more non-standard
|
||||||
|
Prolog meta-predicates.
|
||||||
|
|
||||||
|
Corrected some omissions and typos on the B-Prolog - Logtalk integration
|
||||||
|
instructions.
|
||||||
|
|
||||||
|
Small performance optimization for messages and super-calls with not yet
|
||||||
|
cached method lookups.
|
||||||
|
|
||||||
|
|
||||||
|
2.25.2 - August 11, 2005
|
||||||
|
|
||||||
|
Updated Logtalk installation and Prolog integration scripts in order to
|
||||||
|
detect a wrongly defined LOGTALKHOME environment variable.
|
||||||
|
|
||||||
|
Corrected a bug on the lgt_install.sh and make*lgt.sh shell scripts where
|
||||||
|
the wrong variable was being referenced when testing the existence of the
|
||||||
|
installation directory prefix.
|
||||||
|
|
||||||
|
Corrected a bug on the makeall_lgt.sh shell script that failed to properly
|
||||||
|
detect unsuccessful completion of individual Prolog integration scripts.
|
||||||
|
|
||||||
|
|
||||||
2.25.1 - August 8, 2005
|
2.25.1 - August 8, 2005
|
||||||
|
|
||||||
Added support for using the "source-highlight" package (version 2.0 or
|
Added support for using the "source-highlight" package (version 2.0 or
|
||||||
@ -215,7 +395,7 @@ RELEASE NOTES
|
|||||||
2.22.5 - February 9, 2005
|
2.22.5 - February 9, 2005
|
||||||
|
|
||||||
Added scripts for easy integration of Logtalk with K-Prolog. Updated the
|
Added scripts for easy integration of Logtalk with K-Prolog. Updated the
|
||||||
K-Prolog config file, correcting a showstopper bug and enabling support
|
K-Prolog config file, correcting a show-stopper bug and enabling support
|
||||||
for using the "library" notation for loading source files.
|
for using the "library" notation for loading source files.
|
||||||
|
|
||||||
Updated JIProlog config file in order to allow smart compilation of source
|
Updated JIProlog config file in order to allow smart compilation of source
|
||||||
@ -524,7 +704,7 @@ RELEASE NOTES
|
|||||||
Updated the syntax coloring configuration files for the supported text
|
Updated the syntax coloring configuration files for the supported text
|
||||||
editors for the new alias/3 predicate directive.
|
editors for the new alias/3 predicate directive.
|
||||||
|
|
||||||
Added autocomplete strings for Logtalk methods and for Logtalk and Prolog
|
Added auto-complete strings for Logtalk methods and for Logtalk and Prolog
|
||||||
built-in predicates and directives to the SubEthaEdit 2.x text editor.
|
built-in predicates and directives to the SubEthaEdit 2.x text editor.
|
||||||
|
|
||||||
Corrected a bug which prevented compilation of metafiles containing
|
Corrected a bug which prevented compilation of metafiles containing
|
||||||
@ -538,7 +718,7 @@ RELEASE NOTES
|
|||||||
compilers.
|
compilers.
|
||||||
|
|
||||||
Improved user manual section on defining object and category metapredicates
|
Improved user manual section on defining object and category metapredicates
|
||||||
and on calling non-stardard Prolog built-in metapredicates. Improved the
|
and on calling non-standard Prolog built-in metapredicates. Improved the
|
||||||
description of some compiler options.
|
description of some compiler options.
|
||||||
|
|
||||||
Added some files missing from the "errors" example (which should have been
|
Added some files missing from the "errors" example (which should have been
|
||||||
@ -956,7 +1136,7 @@ RELEASE NOTES
|
|||||||
2.14.6 - December 31, 2002
|
2.14.6 - December 31, 2002
|
||||||
|
|
||||||
Corrected a bug where the opening directive of an object that,
|
Corrected a bug where the opening directive of an object that,
|
||||||
simultaneously, implements a protocol, imports a categoty, instantiates
|
simultaneously, implements a protocol, imports a category, instantiates
|
||||||
a class, and specializes a superclass, will not be recognized.
|
a class, and specializes a superclass, will not be recognized.
|
||||||
|
|
||||||
|
|
||||||
@ -974,7 +1154,7 @@ RELEASE NOTES
|
|||||||
|
|
||||||
2.14.4 - November 5, 2002
|
2.14.4 - November 5, 2002
|
||||||
|
|
||||||
Removed definition of depracated built-in predicate logtalk_version/3.
|
Removed definition of deprecated built-in predicate logtalk_version/3.
|
||||||
|
|
||||||
Show flag names when printing at startup the default flag values.
|
Show flag names when printing at startup the default flag values.
|
||||||
|
|
||||||
@ -989,7 +1169,7 @@ RELEASE NOTES
|
|||||||
in the PassiveTeX 1.21 XSL:FO processor.
|
in the PassiveTeX 1.21 XSL:FO processor.
|
||||||
|
|
||||||
|
|
||||||
2.14.3 - Sptember 16, 2002
|
2.14.3 - September 16, 2002
|
||||||
|
|
||||||
New compiler option, doctype, to set the doctype reference (if any)
|
New compiler option, doctype, to set the doctype reference (if any)
|
||||||
in the XML documenting files. Default value is "local" for backward
|
in the XML documenting files. Default value is "local" for backward
|
||||||
@ -1118,7 +1298,7 @@ RELEASE NOTES
|
|||||||
at startup.
|
at startup.
|
||||||
|
|
||||||
Reworked Logtalk pre-processor compilation and loading reports. Compiler
|
Reworked Logtalk pre-processor compilation and loading reports. Compiler
|
||||||
option "report" now togles between normal reporting (as specified by the
|
option "report" now toggles between normal reporting (as specified by the
|
||||||
other flags) and silent compilation/loading of source files.
|
other flags) and silent compilation/loading of source files.
|
||||||
|
|
||||||
|
|
||||||
@ -1157,7 +1337,7 @@ RELEASE NOTES
|
|||||||
|
|
||||||
Renamed config file predicate lgt_default_compiler_option/2 to lgt_flag/2.
|
Renamed config file predicate lgt_default_compiler_option/2 to lgt_flag/2.
|
||||||
|
|
||||||
New XSL stylesheets and shell scripts to convert Logtalk XML entity
|
New XSL style-sheets and shell scripts to convert Logtalk XML entity
|
||||||
documenting files to PDF format using XSL Formating Objects.
|
documenting files to PDF format using XSL Formating Objects.
|
||||||
|
|
||||||
|
|
||||||
@ -1183,7 +1363,7 @@ RELEASE NOTES
|
|||||||
and info/2 directives.
|
and info/2 directives.
|
||||||
|
|
||||||
Changed the order of object loading in the "mi" example to avoid
|
Changed the order of object loading in the "mi" example to avoid
|
||||||
suporious warning messages.
|
spurious warning messages.
|
||||||
|
|
||||||
Added a new problem ("bridge") to the "searching" example. Improved
|
Added a new problem ("bridge") to the "searching" example. Improved
|
||||||
"performance" monitor to give correct reports on alternative solutions.
|
"performance" monitor to give correct reports on alternative solutions.
|
||||||
@ -1198,7 +1378,7 @@ RELEASE NOTES
|
|||||||
entities (by default) prints a warning. Updated user and reference
|
entities (by default) prints a warning. Updated user and reference
|
||||||
manuals.
|
manuals.
|
||||||
|
|
||||||
Rewrited all the compiler warning/error code and output messages.
|
Rewritten all the compiler warning/error code and output messages.
|
||||||
|
|
||||||
Changed compiled code functors postfixes from "_sdcl" and "_sdef" to
|
Changed compiled code functors postfixes from "_sdcl" and "_sdef" to
|
||||||
"_idcl" and "_idef" (implies recompilation of all objects, protocols,
|
"_idcl" and "_idef" (implies recompilation of all objects, protocols,
|
||||||
@ -1243,11 +1423,11 @@ RELEASE NOTES
|
|||||||
Corrected a bug where sending a message for a built-in method to an
|
Corrected a bug where sending a message for a built-in method to an
|
||||||
unknown object fails instead of generating the expected exception.
|
unknown object fails instead of generating the expected exception.
|
||||||
|
|
||||||
Put some ocorrences of atoms public, mode, and type between ()'s to
|
Put some occurrences of atoms public, mode, and type between ()'s to
|
||||||
avoid compilation errors in BinProlog 8.0 and other Prolog compilers
|
avoid compilation errors in BinProlog 8.0 and other Prolog compilers
|
||||||
that declare these atoms as operators.
|
that declare these atoms as operators.
|
||||||
|
|
||||||
Corrected the definition of the state space of the "Missionaires and
|
Corrected the definition of the state space of the "Missionaries and
|
||||||
Cannibals" problem in the "searching" example that resulted in some
|
Cannibals" problem in the "searching" example that resulted in some
|
||||||
wrong solutions.
|
wrong solutions.
|
||||||
|
|
||||||
@ -1444,7 +1624,7 @@ RELEASE NOTES
|
|||||||
Logtalk is now an Open Source project, available under Perl's Artistic
|
Logtalk is now an Open Source project, available under Perl's Artistic
|
||||||
license.
|
license.
|
||||||
|
|
||||||
Two new examples: instmethods, ilustrating the use of instance defined
|
Two new examples: instmethods, illustrating the use of instance defined
|
||||||
methods, and classvars, showing how to implement class variables.
|
methods, and classvars, showing how to implement class variables.
|
||||||
|
|
||||||
Updated Logtalk grammar to explicitly allow for user-defined types
|
Updated Logtalk grammar to explicitly allow for user-defined types
|
||||||
@ -1564,7 +1744,7 @@ RELEASE NOTES
|
|||||||
pre-processor.
|
pre-processor.
|
||||||
|
|
||||||
Removed variables example. The category attributes is now part of the
|
Removed variables example. The category attributes is now part of the
|
||||||
kernel example. Corrected some warmless syntax errors in directives in
|
kernel example. Corrected some harmless syntax errors in directives in
|
||||||
kernel/attributes.lgt, kernel/monitor.lgt and miscellaneous/queens.lgt.
|
kernel/attributes.lgt, kernel/monitor.lgt and miscellaneous/queens.lgt.
|
||||||
|
|
||||||
Changed name of blocks example to bricks and object "block" to "brick"
|
Changed name of blocks example to bricks and object "block" to "brick"
|
||||||
@ -1624,7 +1804,7 @@ RELEASE NOTES
|
|||||||
New config file for MasterProlog 4.1; removed config file for the
|
New config file for MasterProlog 4.1; removed config file for the
|
||||||
old BIM Prolog 4.0.
|
old BIM Prolog 4.0.
|
||||||
|
|
||||||
Corrected an error in the config file for OpenProlog in the definiton
|
Corrected an error in the config file for OpenProlog in the definition
|
||||||
of the write_term/3 predicate.
|
of the write_term/3 predicate.
|
||||||
|
|
||||||
Added a safer definition for write_term/3 predicate in the config
|
Added a safer definition for write_term/3 predicate in the config
|
||||||
@ -1672,7 +1852,7 @@ RELEASE NOTES
|
|||||||
|
|
||||||
Modified the examples loader utility files to make only a call to
|
Modified the examples loader utility files to make only a call to
|
||||||
logtalk_load/1 by using a list of entities. This should make it easy to
|
logtalk_load/1 by using a list of entities. This should make it easy to
|
||||||
modify these files for compilers that don't support arbritrary queries
|
modify these files for compilers that don't support arbitrary queries
|
||||||
in a file.
|
in a file.
|
||||||
|
|
||||||
Logtalk runtime no longer tries to catch some of the errors thrown
|
Logtalk runtime no longer tries to catch some of the errors thrown
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
@ -17,7 +17,7 @@ sample queries for your to try.
|
|||||||
Most of these examples need objects, protocols, and categories which are
|
Most of these examples need objects, protocols, and categories which are
|
||||||
defined in the Logtalk standard library or in other examples. See the NOTES
|
defined in the Logtalk standard library or in other examples. See the NOTES
|
||||||
files inside the library folder, plus the NOTES and SCRIPT files inside each
|
files inside the library folder, plus the NOTES and SCRIPT files inside each
|
||||||
example folder).
|
example folder.
|
||||||
|
|
||||||
Some examples may redefine objects already loaded from other examples.
|
Some examples may redefine objects already loaded from other examples.
|
||||||
You may want to restart Logtalk after trying each example.
|
You may want to restart Logtalk after trying each example.
|
||||||
@ -32,7 +32,7 @@ files to fully understand them.
|
|||||||
All examples are formatted using four spaces tabs.
|
All examples are formatted using four spaces tabs.
|
||||||
|
|
||||||
By default, compiling an example generates a .xml documenting file for each
|
By default, compiling an example generates a .xml documenting file for each
|
||||||
compiled entity (object, category, or protocol). See the xml folder for
|
compiled entity (object, category, or protocol). See the "xml" folder for
|
||||||
instructions on how to browse the .xml files for on-line reading or how to
|
instructions on how to browse the .xml files for on-line reading or how to
|
||||||
convert the files to a print-ready format such as PDF.
|
convert the files to a print-ready format such as PDF.
|
||||||
|
|
||||||
@ -41,7 +41,8 @@ Here is a short description of each included example:
|
|||||||
|
|
||||||
aliases
|
aliases
|
||||||
example of using the alias/3 predicate directive to provide alternative
|
example of using the alias/3 predicate directive to provide alternative
|
||||||
names to inherited predicates in order to improve readability
|
names to inherited predicates in order to improve readability or to solve
|
||||||
|
multi-inheritance conflicts
|
||||||
|
|
||||||
assignvars
|
assignvars
|
||||||
example of using assignable variables in the context of parametric objects
|
example of using assignable variables in the context of parametric objects
|
||||||
@ -82,9 +83,10 @@ engines
|
|||||||
|
|
||||||
errors
|
errors
|
||||||
example showing the Logtalk compiler warning and error reporting
|
example showing the Logtalk compiler warning and error reporting
|
||||||
|
for common programming errors
|
||||||
|
|
||||||
hello_world
|
hello_world
|
||||||
the unavoidable hello world programming example
|
the unavoidable "hello world" programming example
|
||||||
|
|
||||||
inheritance
|
inheritance
|
||||||
examples of public, protected, and private inheritance using both
|
examples of public, protected, and private inheritance using both
|
||||||
@ -115,6 +117,9 @@ mi
|
|||||||
miscellaneous
|
miscellaneous
|
||||||
unsorted examples
|
unsorted examples
|
||||||
|
|
||||||
|
modules
|
||||||
|
simple example of compiling Prolog module files as objects
|
||||||
|
|
||||||
msglog
|
msglog
|
||||||
example of using events and monitors for recording, replaying, and
|
example of using events and monitors for recording, replaying, and
|
||||||
printing user messages
|
printing user messages
|
||||||
@ -148,7 +153,7 @@ relations
|
|||||||
constrained relations between objects
|
constrained relations between objects
|
||||||
|
|
||||||
roots
|
roots
|
||||||
objects, protocols and categories needed by most of the other examples
|
objects, protocols, and categories needed by most of the other examples;
|
||||||
|
|
||||||
searching
|
searching
|
||||||
state-space searching framework
|
state-space searching framework
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
aliases])).
|
[aliases])).
|
||||||
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[aliases], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
fsm3,
|
[fsm3, rectangle3])).
|
||||||
rectangle3])).
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[fsm3, rectangle3], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
:- object(database).
|
:- object(database).
|
||||||
|
|
||||||
:- public(db_test_this/0, db_test_self/0, db_test_obj/0).
|
:- public(db_test_this/0, db_test_self/0, db_test_obj/0).
|
||||||
@ -25,7 +24,6 @@
|
|||||||
fail.
|
fail.
|
||||||
db_test_self.
|
db_test_self.
|
||||||
|
|
||||||
|
|
||||||
db_test_obj :-
|
db_test_obj :-
|
||||||
this(This),
|
this(This),
|
||||||
{repeat(100)},
|
{repeat(100)},
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -2,41 +2,14 @@
|
|||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load([
|
||||||
descriptors,
|
descriptors,
|
||||||
|
|
||||||
order,
|
|
||||||
|
|
||||||
expert,
|
expert,
|
||||||
|
birds])).
|
||||||
|
|
||||||
falconiforms, % orders
|
/*
|
||||||
passerformes,
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
tubenose,
|
files, comment the directive above and uncomment the directive below
|
||||||
waterfowl,
|
|
||||||
|
|
||||||
albatross, % families
|
:- initialization(
|
||||||
duck,
|
logtalk_load(
|
||||||
falcon,
|
[birds], [xmlsref(standalone)])).
|
||||||
flycatcher,
|
*/
|
||||||
goose,
|
|
||||||
swallow,
|
|
||||||
swan,
|
|
||||||
vulture,
|
|
||||||
|
|
||||||
ash_throated_flycatcher, % birds
|
|
||||||
barn_swallow,
|
|
||||||
black_footed_albatross,
|
|
||||||
california_condor,
|
|
||||||
canada_goose,
|
|
||||||
cliff_swallow,
|
|
||||||
female_mallard,
|
|
||||||
fulmar,
|
|
||||||
great_crested_flycatcher,
|
|
||||||
laysan_albatross,
|
|
||||||
male_mallard,
|
|
||||||
peregrine_falcon,
|
|
||||||
pintail,
|
|
||||||
purple_martin,
|
|
||||||
snow_goose,
|
|
||||||
sparrow_hawk,
|
|
||||||
trumpeter_swan,
|
|
||||||
turkey_vulture,
|
|
||||||
whistling_swan])).
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,7 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
brick,
|
[bricks], [events(on)])).
|
||||||
brick_stack,
|
|
||||||
stack_monitor],
|
/*
|
||||||
[events(on)])).
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[bricks], [events(on), xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
classvars])).
|
[classvars])).
|
||||||
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[classvars], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
@ -15,7 +15,7 @@ objects and categories:
|
|||||||
canonical DCG example of parsing arithmetic expressions
|
canonical DCG example of parsing arithmetic expressions
|
||||||
bom
|
bom
|
||||||
bill of materials DCG example (see below for original source)
|
bill of materials DCG example (see below for original source)
|
||||||
sentence
|
sentences
|
||||||
simple parsing of natural language sentences
|
simple parsing of natural language sentences
|
||||||
parsetree
|
parsetree
|
||||||
same as above but building and returning the parse tree
|
same as above but building and returning the parse tree
|
||||||
@ -30,11 +30,15 @@ objects and categories:
|
|||||||
walker
|
walker
|
||||||
parsing of walker movements and calculation of distance
|
parsing of walker movements and calculation of distance
|
||||||
travelled
|
travelled
|
||||||
|
bypass
|
||||||
|
using the {} DCG construct together with the {} Logtalk control
|
||||||
|
construct
|
||||||
|
|
||||||
This folder contains two examples of DCGs (bom and faa) adopted with
|
This folder contains two examples of DCGs ("bom" and "faa") adopted with
|
||||||
permission from the Amzi! Prolog documentation. The documentation is
|
permission from the Amzi! Prolog documentation. The documentation is
|
||||||
available on-line in HTML format at the URL:
|
available on-line in HTML format at the URL:
|
||||||
|
|
||||||
http://www.amzi.com/
|
http://www.amzi.com/
|
||||||
|
|
||||||
Please refer to the book for more information on the original examples.
|
Please refer to the Amzi! Prolog documentation for more information on the
|
||||||
|
original examples.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
bar :-
|
bar :- % test predicate
|
||||||
write('bar predicate called'), nl.
|
write('bar predicate called'), nl.
|
||||||
|
|
||||||
|
|
||||||
@ -10,6 +10,6 @@ bar :-
|
|||||||
:- info(foo//0, [
|
:- info(foo//0, [
|
||||||
comment is 'Just the almighty and famous old foo.']).
|
comment is 'Just the almighty and famous old foo.']).
|
||||||
|
|
||||||
foo --> {{bar}}.
|
foo --> {{bar}}. % the external pair of {}'s have the usual DCG semantics;
|
||||||
|
% the internal pair of {}'s is the Logtalk compiler bypass control construct
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -4,10 +4,7 @@
|
|||||||
parsep,
|
parsep,
|
||||||
calculator,
|
calculator,
|
||||||
parsetree,
|
parsetree,
|
||||||
determiners,
|
sentences,
|
||||||
nouns,
|
|
||||||
verbs,
|
|
||||||
sentence,
|
|
||||||
url,
|
url,
|
||||||
xml,
|
xml,
|
||||||
shell,
|
shell,
|
||||||
@ -16,3 +13,23 @@
|
|||||||
faa,
|
faa,
|
||||||
bypass,
|
bypass,
|
||||||
dcgtest])).
|
dcgtest])).
|
||||||
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[parsep,
|
||||||
|
calculator,
|
||||||
|
parsetree,
|
||||||
|
sentences,
|
||||||
|
url,
|
||||||
|
xml,
|
||||||
|
shell,
|
||||||
|
walker,
|
||||||
|
bom,
|
||||||
|
faa,
|
||||||
|
bypass,
|
||||||
|
dcgtest], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
diamond1,
|
[diamond1, diamond2, diamond3])).
|
||||||
diamond2,
|
|
||||||
diamond3])).
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[diamond1, diamond2, diamond3], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,9 +1,17 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load([
|
||||||
root,
|
protos,
|
||||||
descendant,
|
classes,
|
||||||
metaclass,
|
|
||||||
class,
|
|
||||||
instance,
|
|
||||||
prototype])).
|
prototype])).
|
||||||
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[protos,
|
||||||
|
classes,
|
||||||
|
prototype], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
@ -20,10 +20,10 @@ need to configure your text editor to open the source file using the
|
|||||||
declared encoding. If you are using the SWI-Prolog GUI application on
|
declared encoding. If you are using the SWI-Prolog GUI application on
|
||||||
Windows, be sure to select a font which supports Unicode characters.
|
Windows, be sure to select a font which supports Unicode characters.
|
||||||
|
|
||||||
Currently, Logtalk accepts any atom is an argument for the encoding/1
|
The current Logtalk version accepts any atom as an argument for the encoding/1
|
||||||
directive. As, by default, Logtalk automatically generates a XML documenting
|
directive. As, by default, Logtalk automatically generates a XML documenting
|
||||||
file for each compiled entity, the following table is used to set the
|
file for each compiled entity, the following table is used to set the encoding
|
||||||
encoding of the XML file:
|
of the XML file:
|
||||||
|
|
||||||
Logtalk source file XML file
|
Logtalk source file XML file
|
||||||
ascii us-ascii
|
ascii us-ascii
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
:- encoding(utf8).
|
:- encoding(utf8). % this directive, when present, must be the first term in a source file
|
||||||
|
|
||||||
|
|
||||||
:- object(babel).
|
:- object(babel).
|
||||||
@ -21,7 +21,7 @@
|
|||||||
hello_world(es, '¡Hola mundo!').
|
hello_world(es, '¡Hola mundo!').
|
||||||
hello_world(ja, 'こんにちは世界!').
|
hello_world(ja, 'こんにちは世界!').
|
||||||
hello_world(ko, '여보세요 세계!').
|
hello_world(ko, '여보세요 세계!').
|
||||||
hello_world(nl, 'Hello wereld!').
|
hello_world(nl, 'Hallo wereld!').
|
||||||
hello_world(pt, 'Olá mundo!').
|
hello_world(pt, 'Olá mundo!').
|
||||||
hello_world(ru, 'Здравствулте! мир!').
|
hello_world(ru, 'Здравствулте! мир!').
|
||||||
hello_world(zh, '你好世界!').
|
hello_world(zh, '你好世界!').
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
:- encoding(iso_latin_1).
|
:- encoding(iso_latin_1). % this directive, when present, must be the first term in a source file
|
||||||
|
|
||||||
|
|
||||||
:- object(latin).
|
:- object(latin).
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
babel,
|
[babel, latin])).
|
||||||
latin])).
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[babel, latin], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
engines])).
|
[engines])).
|
||||||
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[engines], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
@ -16,6 +16,6 @@ source files in a text editor to better understand how the compiler
|
|||||||
deals with common programming errors.
|
deals with common programming errors.
|
||||||
|
|
||||||
Note that the warnings and errors that you will get while compiling
|
Note that the warnings and errors that you will get while compiling
|
||||||
your files depend on your compiler flags (defined explicitly as
|
your source files depend on your compiler flags (defined explicitly
|
||||||
parameters in the logtalk_compile/2 or logtalk_load/2 built-in
|
as parameters for the logtalk_compile/2 or logtalk_load/2 built-in
|
||||||
predicates or by default in your configuration file).
|
predicates or by default in your Prolog configuration file).
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
|
||||||
|
|
||||||
% The entities on this example are divided in two sets. To load each
|
The entities on this example are divided in two sets. The first set
|
||||||
% sets of entities, compile and load the corresponding loader files:
|
results on compiler warning messages, while the second set results
|
||||||
|
in compiler error messages. To load each sets of entities, compile
|
||||||
|
and load the corresponding loader files:
|
||||||
|
|
||||||
| ?- logtalk_load(errors(warnings_loader)).
|
| ?- logtalk_load(errors(warnings_loader)).
|
||||||
...
|
...
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
|
|
||||||
:- category(catdynpred).
|
:- category(catdynpred).
|
||||||
|
|
||||||
|
% dynamic predicates may be declared inside categories but ...
|
||||||
:- public(dynpred/1).
|
:- public(dynpred/1).
|
||||||
:- dynamic(dynpred/1).
|
:- dynamic(dynpred/1).
|
||||||
|
|
||||||
|
% ... clauses for dynamic predicates are not allowed
|
||||||
dynpred(1).
|
dynpred(1).
|
||||||
dynpred(2).
|
dynpred(2).
|
||||||
dynpred(3).
|
dynpred(3).
|
||||||
|
|
||||||
|
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
:- object(ccredef).
|
:- object(ccredef).
|
||||||
|
|
||||||
::(_).
|
|
||||||
|
|
||||||
:- end_object.
|
|
||||||
|
|
||||||
|
% Logtalk built-in control constructs cannot be redefined
|
||||||
|
::(_).
|
||||||
|
|
||||||
|
:- end_object.
|
||||||
|
@ -1,62 +1,12 @@
|
|||||||
|
|
||||||
:- initialization((
|
:- initialization((
|
||||||
catch(
|
catch(logtalk_load(lgtmthdredef, [report(on)]), _, true),
|
||||||
logtalk_load(
|
catch(logtalk_load(invclause, [report(on)]), _, true),
|
||||||
[lgtmthdredef],
|
catch(logtalk_load(unknowndir, [report(on)]), _, true),
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), report(on)]),
|
catch(logtalk_load(noninstdir, [report(on)]), _, true),
|
||||||
_,
|
catch(logtalk_load(invargdir, [report(on)]), _, true),
|
||||||
true),
|
catch(logtalk_load(unmatchdir, [report(on)]), _, true),
|
||||||
catch(
|
catch(logtalk_load(catdynpred, [report(on)]), _, true),
|
||||||
logtalk_load(
|
catch(logtalk_load(ccredef, [report(on)]), _, true),
|
||||||
[invclause],
|
catch(logtalk_load(usesrepeated, [report(on)]), _, true),
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), report(on)]),
|
catch(logtalk_load(usesconflict, [report(on)]), _, true))).
|
||||||
_,
|
|
||||||
true),
|
|
||||||
catch(
|
|
||||||
logtalk_load(
|
|
||||||
[unknowndir],
|
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), report(on)]),
|
|
||||||
_,
|
|
||||||
true),
|
|
||||||
catch(
|
|
||||||
logtalk_load(
|
|
||||||
[noninstdir],
|
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), report(on)]),
|
|
||||||
_,
|
|
||||||
true),
|
|
||||||
catch(
|
|
||||||
logtalk_load(
|
|
||||||
[invargdir],
|
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), report(on)]),
|
|
||||||
_,
|
|
||||||
true),
|
|
||||||
catch(
|
|
||||||
logtalk_load(
|
|
||||||
[unmatchdir],
|
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), report(on)]),
|
|
||||||
_,
|
|
||||||
true),
|
|
||||||
catch(
|
|
||||||
logtalk_load(
|
|
||||||
[catdynpred],
|
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), report(on)]),
|
|
||||||
_,
|
|
||||||
true),
|
|
||||||
catch(
|
|
||||||
logtalk_load(
|
|
||||||
[ccredef],
|
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), report(on)]),
|
|
||||||
_,
|
|
||||||
true),
|
|
||||||
catch(
|
|
||||||
logtalk_load(
|
|
||||||
[usesrepeated],
|
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), report(on)]),
|
|
||||||
_,
|
|
||||||
true),
|
|
||||||
catch(
|
|
||||||
logtalk_load(
|
|
||||||
[usesconflict],
|
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), report(on)]),
|
|
||||||
_,
|
|
||||||
true))).
|
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
|
|
||||||
:- object(invargdir).
|
:- object(invargdir).
|
||||||
|
|
||||||
|
% invalid directive argument
|
||||||
:- public(1234).
|
:- public(1234).
|
||||||
|
|
||||||
|
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
|
|
||||||
:- object(invclause).
|
:- object(invclause).
|
||||||
|
|
||||||
|
% invalid clause head
|
||||||
1234 :-
|
1234 :-
|
||||||
write(hello).
|
write(hello).
|
||||||
|
|
||||||
|
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
|
|
||||||
:- object(lgtmthdredef).
|
:- object(lgtmthdredef).
|
||||||
|
|
||||||
|
% Logtalk built-in methods cannot be redefined
|
||||||
asserta(_).
|
asserta(_).
|
||||||
|
|
||||||
|
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
|
|
||||||
:- object(noninstdir).
|
:- object(noninstdir).
|
||||||
|
|
||||||
|
% misspelt directive functor
|
||||||
:- Public(predicate/0).
|
:- Public(predicate/0).
|
||||||
|
|
||||||
|
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
|
|
||||||
:- object(unknowndir).
|
:- object(unknowndir).
|
||||||
|
|
||||||
|
% unknown directive
|
||||||
:- index(predicate/3, [1, 2]).
|
:- index(predicate/3, [1, 2]).
|
||||||
|
|
||||||
|
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
|
|
||||||
|
% misspelt opening object directive
|
||||||
|
|
||||||
:- objecto(unmatchdir).
|
:- objecto(unmatchdir).
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
|
|
||||||
|
% conflict between uses/2 directive and a predicate definition
|
||||||
|
|
||||||
:-object(usesconflict).
|
:-object(usesconflict).
|
||||||
|
|
||||||
:- uses(list, [member/2]).
|
:- uses(list, [member/2]).
|
||||||
|
|
||||||
member(H, [H| _]).
|
member(H, [H| _]). % an object (or category) cannot define a
|
||||||
member(H, [_| T]) :-
|
member(H, [_| T]) :- % predicate referenced on a uses/2 directive
|
||||||
member(H, T).
|
member(H, T).
|
||||||
|
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
|
|
||||||
|
% conflict between uses/2 directives
|
||||||
|
|
||||||
:-object(usesrepeated).
|
:-object(usesrepeated).
|
||||||
|
|
||||||
:- uses(list, [member/2]).
|
:- uses(list, [member/2]). % a predicate cannot be referenced
|
||||||
:- uses(set, [member/2]).
|
:- uses(set, [member/2]). % in more than one uses/2 directive
|
||||||
|
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load(
|
logtalk_load(
|
||||||
[misspell, singletons1, plredef, lgtredef, unknownrefs, portability],
|
[warnings],
|
||||||
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), portability(warning), report(on)])).
|
[unknown(warning), misspelt(warning), singletons(warning), plredef(warning), lgtredef(warning), portability(warning), report(on)])).
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT
|
|
||||||
file.
|
|
||||||
|
|
||||||
No self-respected programming language could do without a "Hello
|
No self-respected programming language could do without a "Hello
|
||||||
World" example!
|
World" example!
|
||||||
|
|
||||||
|
To load this example and for sample queries, please see the SCRIPT
|
||||||
|
file.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -2,3 +2,12 @@
|
|||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load([
|
||||||
hello_world])).
|
hello_world])).
|
||||||
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[hello_world], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,7 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
predicates,
|
[predicates, interface, prototypes, classes])).
|
||||||
interface,
|
|
||||||
prototypes,
|
/*
|
||||||
classes])).
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[predicates, interface, prototypes, classes], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
This category defines a set of predicates, which are imported by the
|
This category defines a set of predicates, which are imported by the
|
||||||
roots of both the class-based and the prototype-based hierarchies of
|
roots of both the class-based and the prototype-based hierarchies of
|
||||||
this example
|
this example.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
:- category(predicates).
|
:- category(predicates).
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
instmethods])).
|
[instmethods])).
|
||||||
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[instmethods], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
|
||||||
|
|
||||||
The examples in this folder are adopted from the Logic&Objects system
|
The examples in this folder are adopted from the Logic&Objects system
|
||||||
by Francis G. McCabe. Detailed descriptions and the original source code
|
by Francis G. McCabe. Detailed descriptions and the original source
|
||||||
can be found on the book "Logic and Objects" by the author published by
|
code can be found on the McCabe's "Logic and Objects" book, published
|
||||||
Prentice Hall.
|
by Prentice Hall.
|
||||||
|
|
||||||
Note that because Logtalk lacks the functional notation of the
|
Note that, as Logtalk lacks the functional notation found on the
|
||||||
Logic&Objects system, my adaptation of the book examples may have
|
Logic&Objects system, my adaptation of the book examples may have
|
||||||
introduced some bugs not present in the original code.
|
introduced some bugs not present in the original code.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,21 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load([
|
||||||
plan1,
|
planner])).
|
||||||
airport,
|
|
||||||
aberdeen_air,
|
/*
|
||||||
city,
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
london,
|
files, comment the directive above and uncomment the directive below
|
||||||
albert_hall,
|
|
||||||
edinburgh,
|
:- initialization(
|
||||||
edin,
|
logtalk_load(
|
||||||
aiai,
|
[planner], [xmlsref(standalone)])).
|
||||||
castle,
|
*/
|
||||||
fly,
|
|
||||||
glasgow,
|
|
||||||
imperial,
|
|
||||||
lhr,
|
|
||||||
manchester,
|
|
||||||
renfrew,
|
|
||||||
ringway,
|
|
||||||
victoria])).
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
@ -16,7 +16,7 @@ Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
|||||||
|
|
||||||
| ?- incremental::route([london, brighton, portsmouth, exeter, oxford, aberystwyth], Route).
|
| ?- incremental::route([london, brighton, portsmouth, exeter, oxford, aberystwyth], Route).
|
||||||
|
|
||||||
Route = oxford~london~portsmouth~brighton~exeter~aberystwyth ?
|
Route = oxford-london-portsmouth-brighton-exeter-aberystwyth ?
|
||||||
yes
|
yes
|
||||||
|
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ yes
|
|||||||
|
|
||||||
| ?- presort::route([london, brighton, portsmouth, exeter, oxford, aberystwyth], Route).
|
| ?- presort::route([london, brighton, portsmouth, exeter, oxford, aberystwyth], Route).
|
||||||
|
|
||||||
Route = brighton~london~oxford~portsmouth~exeter~aberystwyth ?
|
Route = brighton-london-oxford-portsmouth-exeter-aberystwyth ?
|
||||||
yes
|
yes
|
||||||
|
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ yes
|
|||||||
|
|
||||||
| ?- circular::route([london, brighton, portsmouth, exeter, oxford, aberystwyth], Route).
|
| ?- circular::route([london, brighton, portsmouth, exeter, oxford, aberystwyth], Route).
|
||||||
|
|
||||||
Route = london~brighton~portsmouth~exeter~aberystwyth~oxford~london ?
|
Route = london-brighton-portsmouth-exeter-aberystwyth-oxford-london ?
|
||||||
yes
|
yes
|
||||||
|
|
||||||
|
|
||||||
@ -40,5 +40,5 @@ yes
|
|||||||
|
|
||||||
| ?- permute::route([london, brighton, portsmouth, exeter, oxford, aberystwyth], Route).
|
| ?- permute::route([london, brighton, portsmouth, exeter, oxford, aberystwyth], Route).
|
||||||
|
|
||||||
Route = (aberystwyth~exeter~portsmouth~brighton~london~oxford,273.6237583942784) ?
|
Route = (aberystwyth-exeter-portsmouth-brighton-london-oxford,273.6237583942784) ?
|
||||||
yes
|
yes
|
||||||
|
@ -1,47 +1,13 @@
|
|||||||
|
|
||||||
:- op(400, yfx, ~).
|
|
||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
quick1,
|
[sorting, towns, salesman])).
|
||||||
|
|
||||||
location2,
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
aberdeen,
|
:- initialization(
|
||||||
aberystwyth,
|
logtalk_load(
|
||||||
birmingham,
|
[sorting, towns, salesman], [xmlsref(standalone)])).
|
||||||
brighton,
|
*/
|
||||||
bristol,
|
|
||||||
cambridge,
|
|
||||||
cardiff,
|
|
||||||
carlisle,
|
|
||||||
dover,
|
|
||||||
edinburgh,
|
|
||||||
exeter,
|
|
||||||
glasgow,
|
|
||||||
hull,
|
|
||||||
leeds,
|
|
||||||
liverpool,
|
|
||||||
london,
|
|
||||||
manchester,
|
|
||||||
newcastle,
|
|
||||||
nottingham,
|
|
||||||
oxford,
|
|
||||||
penzance,
|
|
||||||
portsmouth,
|
|
||||||
sheffield,
|
|
||||||
swansea,
|
|
||||||
york,
|
|
||||||
|
|
||||||
salesman,
|
|
||||||
|
|
||||||
circular,
|
|
||||||
incremental,
|
|
||||||
presort,
|
|
||||||
driving,
|
|
||||||
geographic2,
|
|
||||||
metric1,
|
|
||||||
permute,
|
|
||||||
|
|
||||||
descend,
|
|
||||||
natural])).
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
:- object(salesman).
|
:- object(salesman).
|
||||||
|
|
||||||
|
|
||||||
:- info([
|
:- info([
|
||||||
author is 'Paulo Moura',
|
author is 'Paulo Moura',
|
||||||
version is 1.0,
|
version is 1.0,
|
||||||
@ -9,12 +8,266 @@
|
|||||||
comment is '.',
|
comment is '.',
|
||||||
source is 'Example adopted from the Francis G. McCabe L&O documentation.']).
|
source is 'Example adopted from the Francis G. McCabe L&O documentation.']).
|
||||||
|
|
||||||
|
|
||||||
:- op(400, yfx, ~).
|
|
||||||
|
|
||||||
|
|
||||||
:- public(route/2).
|
:- public(route/2).
|
||||||
:- mode(route(+list, -nonvar), zero_or_more).
|
:- mode(route(+list, -nonvar), zero_or_more).
|
||||||
|
|
||||||
|
:- end_object.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
:- object(circular,
|
||||||
|
extends(salesman)).
|
||||||
|
|
||||||
|
:- info([
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
version is 1.0,
|
||||||
|
date is 2000/4/22,
|
||||||
|
comment is '.',
|
||||||
|
source is 'Example adopted from the Francis G. McCabe L&O documentation.']).
|
||||||
|
|
||||||
|
route([Town| Towns], Route) :-
|
||||||
|
route(Towns, Town-Town, Route).
|
||||||
|
|
||||||
|
route([], Route, Route).
|
||||||
|
route([Town| Towns], Route, Route2) :-
|
||||||
|
best_place(Route, Town, Best),
|
||||||
|
split(Best, Route, Town, Split),
|
||||||
|
route(Towns, Split, Route2).
|
||||||
|
|
||||||
|
best_place(Route, Town, Best) :-
|
||||||
|
best_place(Route, Town, 10000000, 0, 0, Best).
|
||||||
|
|
||||||
|
best_place(R-T1-T2, Town, XD, _, I, Best) :-
|
||||||
|
atom(T1),
|
||||||
|
atom(T2),
|
||||||
|
extra(T1, Town, T2, XT),
|
||||||
|
XT < XD,
|
||||||
|
I2 is I + 1,
|
||||||
|
best_place(R-T1, Town, XT, I2, I2, Best).
|
||||||
|
best_place(R-T1-T2, Town, XD, XI, I, Best) :-
|
||||||
|
atom(T1),
|
||||||
|
atom(T2),
|
||||||
|
I2 is I + 1,
|
||||||
|
best_place(R-T1, Town, XD, XI, I2, Best).
|
||||||
|
best_place(T1-T2, Town, XD, _, I, Best) :-
|
||||||
|
atom(T1),
|
||||||
|
atom(T2),
|
||||||
|
extra(T1, Town, T2, XT),
|
||||||
|
XT < XD,
|
||||||
|
Best is I + 1.
|
||||||
|
best_place(_-_, _, _, XI, _, XI).
|
||||||
|
|
||||||
|
split(0, Route, Town, Route-Town).
|
||||||
|
split(IX, Route-Town1, Town, Split-Town1) :-
|
||||||
|
IX2 is IX - 1,
|
||||||
|
split(IX2, Route, Town, Split).
|
||||||
|
split(1, Route, Town, Town-Route).
|
||||||
|
|
||||||
|
extra(T1, T, T2, E) :-
|
||||||
|
T1::crow_flies(T, E1),
|
||||||
|
T::crow_flies(T2, E2),
|
||||||
|
T1::crow_flies(T2, E3),
|
||||||
|
E is E1 + E2 - E3.
|
||||||
|
|
||||||
|
:- end_object.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
:- object(incremental,
|
||||||
|
extends(salesman)).
|
||||||
|
|
||||||
|
:- info([
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
version is 1.0,
|
||||||
|
date is 2000/4/22,
|
||||||
|
comment is '.',
|
||||||
|
source is 'Example adopted from the Francis G. McCabe L&O documentation.']).
|
||||||
|
|
||||||
|
route([Town| Towns], Route) :-
|
||||||
|
route(Towns, Town, Route).
|
||||||
|
|
||||||
|
route([], Route, Route).
|
||||||
|
route([Town| Towns], Route, Route2) :-
|
||||||
|
best_place(Route, Town, Best),
|
||||||
|
split(Best, Route, Town, NewR),
|
||||||
|
route(Towns, NewR, Route2).
|
||||||
|
|
||||||
|
best_place(Route-Town1, Town, Best) :- % try the back first ...
|
||||||
|
atom(Town1),
|
||||||
|
Town::crow_flies(Town1, Distance),
|
||||||
|
best_place(Route-Town1, Town, Distance, 0, 0, Best).
|
||||||
|
best_place(Town, _, 0) :-
|
||||||
|
atom(Town).
|
||||||
|
|
||||||
|
best_place(R-T1-T2, T, XD, _, I, Best) :-
|
||||||
|
atom(T1),
|
||||||
|
atom(T2),
|
||||||
|
extra(T1, T, T2, XT),
|
||||||
|
XT < XD,
|
||||||
|
I2 is I + 1,
|
||||||
|
best_place(R-T1, T, XT, I2, I2, Best).
|
||||||
|
best_place(R-T1-T2, T, XD, XI, I, Best) :-
|
||||||
|
atom(T1),
|
||||||
|
atom(T2),
|
||||||
|
I2 is I + 1,
|
||||||
|
best_place(R-T1, T, XD, XI, I2, Best).
|
||||||
|
best_place(T1-T2, T, XD, _, I, Best) :-
|
||||||
|
atom(T1),
|
||||||
|
atom(T2),
|
||||||
|
extra(T1, T, T2, XT),
|
||||||
|
XT < XD,
|
||||||
|
I2 is I + 1,
|
||||||
|
best_place(T1, T, XT, I2, I2, Best).
|
||||||
|
best_place(T1-T2, T, XD, XI, I, Best) :-
|
||||||
|
atom(T1),
|
||||||
|
atom(T2),
|
||||||
|
I2 is I + 1,
|
||||||
|
best_place(T1, T, XD, XI, I2, Best).
|
||||||
|
best_place(T1, T, XD, _, I, Best) :-
|
||||||
|
atom(T1),
|
||||||
|
T1::crow_flies(T, Distance),
|
||||||
|
Distance < XD,
|
||||||
|
Best is I + 1.
|
||||||
|
best_place(_, _, _, XI, _, XI).
|
||||||
|
|
||||||
|
split(0, Route, Town, Route-Town).
|
||||||
|
split(IX, Route-Town1, Town, S-Town1) :-
|
||||||
|
IX2 is IX -1,
|
||||||
|
split(IX2, Route, Town, S).
|
||||||
|
split(1, Route, Town, Town-Route).
|
||||||
|
|
||||||
|
extra(T1, T, T2, XT) :-
|
||||||
|
T1::crow_flies(T, Distance1),
|
||||||
|
T::crow_flies(T2, Distance2),
|
||||||
|
T1::crow_flies(T2, Distance3),
|
||||||
|
XT is Distance1 + Distance2 - Distance3.
|
||||||
|
|
||||||
|
:- end_object.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
:- object(presort,
|
||||||
|
extends(incremental)).
|
||||||
|
|
||||||
|
:- info([
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
version is 1.0,
|
||||||
|
date is 2000/4/22,
|
||||||
|
comment is '.',
|
||||||
|
source is 'Example adopted from the Francis G. McCabe L&O documentation.']).
|
||||||
|
|
||||||
|
:- uses(quick(_)).
|
||||||
|
|
||||||
|
route(Towns, Route) :-
|
||||||
|
arrange(Towns, Towns2),
|
||||||
|
^^route(Towns2, Route).
|
||||||
|
|
||||||
|
arrange(Towns, Sorted) :-
|
||||||
|
centre(Towns, X, Y),
|
||||||
|
quick(geographic(X, Y))::sort(Towns, Sorted).
|
||||||
|
|
||||||
|
centre(Towns, X, Y) :-
|
||||||
|
average(Towns, 0, 0, U, V, 0, L),
|
||||||
|
X is U/L,
|
||||||
|
Y is V/L.
|
||||||
|
|
||||||
|
average([], U, V, U, V, L, L).
|
||||||
|
average([Town| Towns], UX, VX, U, V, I, L):-
|
||||||
|
Town::at(UT, VT),
|
||||||
|
UX2 is UX+UT,
|
||||||
|
VX2 is VX+VT,
|
||||||
|
I2 is I + 1,
|
||||||
|
average(Towns, UX2, VX2, U, V, I2, L).
|
||||||
|
|
||||||
|
:- end_object.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
:- object(driving,
|
||||||
|
extends(salesman)).
|
||||||
|
|
||||||
|
:- info([
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
version is 1.0,
|
||||||
|
date is 2000/4/22,
|
||||||
|
comment is '.',
|
||||||
|
source is 'Example adopted from the Francis G. McCabe L&O documentation.']).
|
||||||
|
|
||||||
|
route(Towns, Route) :-
|
||||||
|
presort::route(Towns, Presort),
|
||||||
|
drive_around(Presort, Route).
|
||||||
|
|
||||||
|
drive_around(Route-Town1-Town2, Route1-Route2) :-
|
||||||
|
!,
|
||||||
|
drive_around(Route-Town1, Route1),
|
||||||
|
Town1::drive(Town2, Route2).
|
||||||
|
drive_around(Town1-Town2, Route) :-
|
||||||
|
!,
|
||||||
|
Town1::drive(Town2, Route).
|
||||||
|
drive_around(Town, Town).
|
||||||
|
|
||||||
|
drive_length(Route, Length) :-
|
||||||
|
drive_length(Route, 0, Length).
|
||||||
|
|
||||||
|
drive_length(Route-Town1-Town2, Acc, Length) :-
|
||||||
|
!,
|
||||||
|
Town1::road_distance(Town2, Length2),
|
||||||
|
Acc2 is Acc + Length2,
|
||||||
|
drive_length(Route-Town1, Acc2, Length).
|
||||||
|
drive_length(Town1-Town2, Acc, Length) :-
|
||||||
|
!,
|
||||||
|
Town1::road_distance(Town2, Length2),
|
||||||
|
Length is Acc + Length2.
|
||||||
|
drive_length(_, Length, Length).
|
||||||
|
|
||||||
|
:- end_object.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
:- object(permute,
|
||||||
|
extends(salesman)).
|
||||||
|
|
||||||
|
:- info([
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
version is 1.0,
|
||||||
|
date is 2000/4/22,
|
||||||
|
comment is '.',
|
||||||
|
source is 'Example adopted from the Francis G. McCabe L&O documentation.']).
|
||||||
|
|
||||||
|
route(Towns, Route) :-
|
||||||
|
findall(
|
||||||
|
(Towns2, Length),
|
||||||
|
(permute(Towns, Towns2), route_length(Towns2, Length)),
|
||||||
|
List),
|
||||||
|
shortest(List, Route).
|
||||||
|
|
||||||
|
permute([Town], Town).
|
||||||
|
permute(Towns, Towns2-Town) :-
|
||||||
|
delete(Towns, Town, Towns3),
|
||||||
|
permute(Towns3, Towns2).
|
||||||
|
|
||||||
|
delete([Head| Tail], Head, Tail).
|
||||||
|
delete([Head| Tail], Element, [Head| Tail2]):-
|
||||||
|
delete(Tail, Element, Tail2).
|
||||||
|
|
||||||
|
route_length(Town, 0) :-
|
||||||
|
atom(Town), !.
|
||||||
|
route_length(Towns-Town1-Town2, Length) :-
|
||||||
|
!,
|
||||||
|
route_length(Towns-Town1, Length1),
|
||||||
|
Town1::crow_flies(Town2, Length2),
|
||||||
|
Length is Length1 + Length2.
|
||||||
|
route_length(Town1-Town2, Length) :-
|
||||||
|
Town1::crow_flies(Town2, Length).
|
||||||
|
|
||||||
|
shortest(List, Shortest) :-
|
||||||
|
shortest(List, null, 1000000, Shortest).
|
||||||
|
|
||||||
|
shortest([], Route, Length, (Route, Length)).
|
||||||
|
shortest([(Route, Length)| Routes], _, LX, Shortest) :-
|
||||||
|
Length < LX, !,
|
||||||
|
shortest(Routes, Route, Length, Shortest).
|
||||||
|
shortest([_| Routes], RX, LX, Shortest) :-
|
||||||
|
shortest(Routes, RX, LX, Shortest).
|
||||||
|
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -8,3 +8,12 @@
|
|||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load([
|
||||||
translator])).
|
translator])).
|
||||||
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[translator], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -5,7 +5,8 @@
|
|||||||
version is 1.0,
|
version is 1.0,
|
||||||
date is 2004/6/8,
|
date is 2004/6/8,
|
||||||
author is 'Paulo Moura',
|
author is 'Paulo Moura',
|
||||||
comment is 'Translator of logic propostions to clauses in conjunctive normal form.']).
|
comment is 'Translator of logic propostions to clauses in conjunctive normal form.',
|
||||||
|
source is 'Code partially based on an example found on the Clocksin and Mellish Prolog book.']).
|
||||||
|
|
||||||
:- public(translate/2).
|
:- public(translate/2).
|
||||||
:- mode(translate(+nonvar, -list), zero_or_one).
|
:- mode(translate(+nonvar, -list), zero_or_one).
|
||||||
@ -22,10 +23,10 @@
|
|||||||
:- dynamic(gensym_counter_/1).
|
:- dynamic(gensym_counter_/1).
|
||||||
|
|
||||||
|
|
||||||
:- op(10, fy, ~ ). % negation
|
:- op(10, fy, ~ ). % negation
|
||||||
:- op(20, yfx, & ). % conjunction
|
:- op(20, yfx, & ). % conjunction
|
||||||
:- op(30, yfx, v ). % disjunction
|
:- op(30, yfx, v ). % disjunction
|
||||||
:- op(40, xfx, =>). % implication
|
:- op(40, xfx, =>). % implication
|
||||||
:- op(40, xfx, <=>). % equivalence
|
:- op(40, xfx, <=>). % equivalence
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
|
||||||
This directory contains examples adaptated from the LPA Prolog++
|
This directory contains examples adapted from the LPA Prolog++
|
||||||
Reference Manual. This manual can be downloaded from the LPA web
|
Reference Manual. This manual can be downloaded from the LPA web
|
||||||
site at <http://www.lpa.co.uk>. Please consult this reference
|
site at <http://www.lpa.co.uk>. Please consult this reference
|
||||||
manual for further informations about each example.
|
manual for further informations about each example.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
solver,
|
[metainterpreters])).
|
||||||
proof_tree,
|
|
||||||
tracer])).
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[metainterpreters], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
metapredicates])).
|
[metapredicates])).
|
||||||
|
|
||||||
|
/*
|
||||||
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[metapredicates], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load([
|
logtalk_load(
|
||||||
space,
|
[mi])).
|
||||||
time,
|
|
||||||
space_time,
|
|
||||||
|
|
||||||
space3,
|
/*
|
||||||
time1,
|
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
||||||
space_time4])).
|
files, comment the directive above and uncomment the directive below
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load(
|
||||||
|
[mi], [xmlsref(standalone)])).
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
:- object(queens).
|
:- object(queens).
|
||||||
|
|
||||||
|
|
||||||
:- uses(list).
|
:- uses(list, [keysort/2, member/2]).
|
||||||
|
|
||||||
|
|
||||||
:- public(queens/1).
|
:- public(queens/1).
|
||||||
@ -130,7 +130,7 @@
|
|||||||
place([], []).
|
place([], []).
|
||||||
place(UnplacedQueens, [Queen-Col|Placement]) :-
|
place(UnplacedQueens, [Queen-Col|Placement]) :-
|
||||||
least_room_to_move(UnplacedQueens, Queen, Columns, OtherQueens),
|
least_room_to_move(UnplacedQueens, Queen, Columns, OtherQueens),
|
||||||
list::member(Col, Columns), % backtrack over possible places
|
member(Col, Columns), % backtrack over possible places
|
||||||
prune(OtherQueens, Queen, Col, RemainingQueens),
|
prune(OtherQueens, Queen, Col, RemainingQueens),
|
||||||
place(RemainingQueens, Placement).
|
place(RemainingQueens, Placement).
|
||||||
|
|
||||||
@ -209,7 +209,7 @@
|
|||||||
queens(N) :-
|
queens(N) :-
|
||||||
make_initial_table(N, Table),
|
make_initial_table(N, Table),
|
||||||
place(Table, Placement),
|
place(Table, Placement),
|
||||||
list::keysort(Placement, DisplayForm),
|
keysort(Placement, DisplayForm),
|
||||||
write(DisplayForm), nl.
|
write(DisplayForm), nl.
|
||||||
|
|
||||||
|
|
||||||
|
16
Logtalk/examples/modules/NOTES
Normal file
16
Logtalk/examples/modules/NOTES
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
=================================================================
|
||||||
|
Logtalk - Object oriented extension to Prolog
|
||||||
|
Release 2.26.2
|
||||||
|
|
||||||
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
|
=================================================================
|
||||||
|
|
||||||
|
|
||||||
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
|
||||||
|
This example illustrates compilation of Prolog module files as objects.
|
||||||
|
|
||||||
|
Due to the lack of standardization of Prolog module systems, the module
|
||||||
|
files must use only a common subset of Prolog module directives. Consult
|
||||||
|
the "Prolog Integration and Migration Guide" in the Logtalk documentation
|
||||||
|
for details.
|
60
Logtalk/examples/modules/SCRIPT
Normal file
60
Logtalk/examples/modules/SCRIPT
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
=================================================================
|
||||||
|
Logtalk - Object oriented extension to Prolog
|
||||||
|
Release 2.26.2
|
||||||
|
|
||||||
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
|
=================================================================
|
||||||
|
|
||||||
|
|
||||||
|
% start by compiling and loading the Prolog module files as objects:
|
||||||
|
|
||||||
|
| ?- logtalk_load(modules(loader)).
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
% call one of the module exported predicates using message sending:
|
||||||
|
|
||||||
|
| ?- test::names.
|
||||||
|
|
||||||
|
paulo
|
||||||
|
carlos
|
||||||
|
helena
|
||||||
|
yes
|
||||||
|
|
||||||
|
|
||||||
|
% same goal as above but the call is made using a meta-predicate
|
||||||
|
% imported from other module:
|
||||||
|
|
||||||
|
| ?- test::test.
|
||||||
|
|
||||||
|
paulo
|
||||||
|
carlos
|
||||||
|
helena
|
||||||
|
yes
|
||||||
|
|
||||||
|
|
||||||
|
% test the compilation of the module export/1 directive; module
|
||||||
|
% exported predicates become public predicates:
|
||||||
|
|
||||||
|
| ?- exports::current_predicate(Pred).
|
||||||
|
|
||||||
|
Pred = p/1
|
||||||
|
yes
|
||||||
|
|
||||||
|
| ?- exports::predicate_property(p(_), Prop).
|
||||||
|
|
||||||
|
Prop = public ;
|
||||||
|
Prop = static ;
|
||||||
|
Prop = declared_in(exports) ;
|
||||||
|
Prop = defined_in(exports)
|
||||||
|
yes
|
||||||
|
|
||||||
|
|
||||||
|
% call the module exported/public predicate using message sending:
|
||||||
|
|
||||||
|
| ?- exports::p(N).
|
||||||
|
|
||||||
|
N = 1 ;
|
||||||
|
N = 2 ;
|
||||||
|
N = 3
|
||||||
|
yes
|
8
Logtalk/examples/modules/exports.lgt
Normal file
8
Logtalk/examples/modules/exports.lgt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
:- module(exports).
|
||||||
|
|
||||||
|
:- export([p/1]).
|
||||||
|
|
||||||
|
p(1).
|
||||||
|
p(2).
|
||||||
|
p(3).
|
9
Logtalk/examples/modules/list.lgt
Normal file
9
Logtalk/examples/modules/list.lgt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
:- module(list, [contained/2, notcontained/2]).
|
||||||
|
|
||||||
|
contained(H, [H| _]).
|
||||||
|
contained(H, [_| T]) :-
|
||||||
|
contained(H, T).
|
||||||
|
|
||||||
|
notcontained(H, L) :-
|
||||||
|
\+ contained(H, L).
|
||||||
|
|
7
Logtalk/examples/modules/loader.lgt
Normal file
7
Logtalk/examples/modules/loader.lgt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load([
|
||||||
|
exports,
|
||||||
|
list,
|
||||||
|
meta,
|
||||||
|
test])).
|
7
Logtalk/examples/modules/meta.lgt
Normal file
7
Logtalk/examples/modules/meta.lgt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
:- module(meta, [meta/1]).
|
||||||
|
|
||||||
|
:- meta_predicate(meta(:)).
|
||||||
|
|
||||||
|
meta(Goal) :-
|
||||||
|
call(Goal).
|
14
Logtalk/examples/modules/test.lgt
Normal file
14
Logtalk/examples/modules/test.lgt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
:- module(test, [test/0, names/0]).
|
||||||
|
|
||||||
|
:- use_module(list, [contained/2]).
|
||||||
|
:- use_module(meta, [meta/1]).
|
||||||
|
|
||||||
|
names :-
|
||||||
|
contained(P, [paulo, carlos, helena]),
|
||||||
|
write(P), nl,
|
||||||
|
fail.
|
||||||
|
names.
|
||||||
|
|
||||||
|
test :-
|
||||||
|
meta(names).
|
@ -1,6 +1,6 @@
|
|||||||
=================================================================
|
=================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Object oriented extension to Prolog
|
||||||
Release 2.25.1
|
Release 2.26.2
|
||||||
|
|
||||||
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
=================================================================
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user