more fixes
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1419 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
1b6dc41ebf
commit
ee9b97222a
|
@ -233,6 +233,7 @@ print_usage(void)
|
||||||
fprintf(stderr," -z Run Goal Before Top-Level \n");
|
fprintf(stderr," -z Run Goal Before Top-Level \n");
|
||||||
fprintf(stderr," -l load Prolog file\n");
|
fprintf(stderr," -l load Prolog file\n");
|
||||||
fprintf(stderr," -L run Prolog file and exit\n");
|
fprintf(stderr," -L run Prolog file and exit\n");
|
||||||
|
fprintf(stderr," -p extra path for file-search-path\n");
|
||||||
fprintf(stderr," -h Heap area in Kbytes (default: %d, minimum: %d)\n",
|
fprintf(stderr," -h Heap area in Kbytes (default: %d, minimum: %d)\n",
|
||||||
DefHeapSpace, MinHeapSpace);
|
DefHeapSpace, MinHeapSpace);
|
||||||
fprintf(stderr," -s Stack area in Kbytes (default: %d, minimum: %d)\n",
|
fprintf(stderr," -s Stack area in Kbytes (default: %d, minimum: %d)\n",
|
||||||
|
@ -389,7 +390,7 @@ parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
case 'p':
|
case 'P':
|
||||||
YAP_SetOutputMessage();
|
YAP_SetOutputMessage();
|
||||||
output_msg = TRUE;
|
output_msg = TRUE;
|
||||||
break;
|
break;
|
||||||
|
@ -438,11 +439,11 @@ parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap)
|
||||||
/* run goal before top-level */
|
/* run goal before top-level */
|
||||||
case 'g':
|
case 'g':
|
||||||
if ((*argv)[0] == '\0')
|
if ((*argv)[0] == '\0')
|
||||||
iap->YapPrologRCFile = *argv;
|
iap->YapPrologGoal = *argv;
|
||||||
else {
|
else {
|
||||||
argc--;
|
argc--;
|
||||||
if (argc == 0) {
|
if (argc == 0) {
|
||||||
fprintf(stderr," [ YAP unrecoverable error: missing file name with option 'l' ]\n");
|
fprintf(stderr," [ YAP unrecoverable error: missing initialization goal for option 'g' ]\n");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
argv++;
|
argv++;
|
||||||
|
@ -452,17 +453,30 @@ parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap)
|
||||||
/* run goal as top-level */
|
/* run goal as top-level */
|
||||||
case 'z':
|
case 'z':
|
||||||
if ((*argv)[0] == '\0')
|
if ((*argv)[0] == '\0')
|
||||||
iap->YapPrologRCFile = *argv;
|
iap->YapPrologTopLevelGoal = *argv;
|
||||||
else {
|
else {
|
||||||
argc--;
|
argc--;
|
||||||
if (argc == 0) {
|
if (argc == 0) {
|
||||||
fprintf(stderr," [ YAP unrecoverable error: missing file name with option 'l' ]\n");
|
fprintf(stderr," [ YAP unrecoverable error: missing goal for option 'z' ]\n");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
argv++;
|
argv++;
|
||||||
iap->YapPrologTopLevelGoal = *argv;
|
iap->YapPrologTopLevelGoal = *argv;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'p':
|
||||||
|
if ((*argv)[0] == '\0')
|
||||||
|
iap->YapPrologAddPath = *argv;
|
||||||
|
else {
|
||||||
|
argc--;
|
||||||
|
if (argc == 0) {
|
||||||
|
fprintf(stderr," [ YAP unrecoverable error: missing paths for option 'p' ]\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
argv++;
|
||||||
|
iap->YapPrologAddPath = *argv;
|
||||||
|
}
|
||||||
|
break;
|
||||||
/* nf: Begin preprocessor code */
|
/* nf: Begin preprocessor code */
|
||||||
case 'D':
|
case 'D':
|
||||||
{
|
{
|
||||||
|
@ -520,6 +534,7 @@ init_standard_system(int argc, char *argv[], YAP_init_args *iap)
|
||||||
iap->YapPrologRCFile = NULL;
|
iap->YapPrologRCFile = NULL;
|
||||||
iap->YapPrologGoal = NULL;
|
iap->YapPrologGoal = NULL;
|
||||||
iap->YapPrologTopLevelGoal = NULL;
|
iap->YapPrologTopLevelGoal = NULL;
|
||||||
|
iap->YapPrologAddPath = NULL;
|
||||||
iap->HaltAfterConsult = FALSE;
|
iap->HaltAfterConsult = FALSE;
|
||||||
iap->FastBoot = FALSE;
|
iap->FastBoot = FALSE;
|
||||||
iap->MaxTableSpaceSize = 0;
|
iap->MaxTableSpaceSize = 0;
|
||||||
|
@ -603,9 +618,8 @@ exec_top_level(int BootMode, YAP_init_args *iap)
|
||||||
/* consult init file */
|
/* consult init file */
|
||||||
atfile = YAP_LookupAtom(init_file);
|
atfile = YAP_LookupAtom(init_file);
|
||||||
as[0] = YAP_MkAtomTerm(atfile);
|
as[0] = YAP_MkAtomTerm(atfile);
|
||||||
as[1] = YAP_MkAtomTerm(YAP_LookupAtom("prolog"));
|
fgoal = YAP_MkFunctor(YAP_FullLookupAtom("$silent_bootstrap"), 1);
|
||||||
fgoal = YAP_MkFunctor(YAP_FullLookupAtom("$consult"), 2);
|
goal = YAP_MkApplTerm(fgoal, 1, as);
|
||||||
goal = YAP_MkApplTerm(fgoal, 2, as);
|
|
||||||
/* launch consult */
|
/* launch consult */
|
||||||
YAP_RunGoal(goal);
|
YAP_RunGoal(goal);
|
||||||
/* set default module to user */
|
/* set default module to user */
|
||||||
|
|
185
docs/yap.tex
185
docs/yap.tex
|
@ -8,7 +8,7 @@
|
||||||
@c @setchapternewpage odd
|
@c @setchapternewpage odd
|
||||||
@c %**end of header
|
@c %**end of header
|
||||||
|
|
||||||
@set VERSION: 5.0.1
|
@set VERSION: 5.1.0
|
||||||
@set EDITION 4.2.4
|
@set EDITION 4.2.4
|
||||||
@set UPDATED December 2004
|
@set UPDATED December 2004
|
||||||
|
|
||||||
|
@ -234,6 +234,7 @@ Subnodes of Library
|
||||||
* System:: System Utilities
|
* System:: System Utilities
|
||||||
* Terms:: Utilities on Terms
|
* Terms:: Utilities on Terms
|
||||||
* Cleanup:: Call With registered Cleanup Calls
|
* Cleanup:: Call With registered Cleanup Calls
|
||||||
|
* SWI-Prolog:: SWI-Prolog emulation
|
||||||
* Timeout:: Call With Timeout
|
* Timeout:: Call With Timeout
|
||||||
* Trees:: Updatable Binary Trees
|
* Trees:: Updatable Binary Trees
|
||||||
* UGraphs:: Unweighted Graphs
|
* UGraphs:: Unweighted Graphs
|
||||||
|
@ -305,7 +306,7 @@ Subnodes of C-Interface
|
||||||
* Yap4 Notes:: Changes in Foreign Predicates Interface
|
* Yap4 Notes:: Changes in Foreign Predicates Interface
|
||||||
|
|
||||||
Subnodes of C-Prolog
|
Subnodes of C-Prolog
|
||||||
* Major Differences with C-Prolog:: Major Differences between YAP and C-Prolog
|
* Major Differences from C-Prolog:: Major Differences between YAP and C-Prolog
|
||||||
* Fully C-Prolog Compatible:: Yap predicates fully compatible with
|
* Fully C-Prolog Compatible:: Yap predicates fully compatible with
|
||||||
C-Prolog
|
C-Prolog
|
||||||
* Not Strictly C-Prolog Compatible:: Yap predicates not strictly as C-Prolog
|
* Not Strictly C-Prolog Compatible:: Yap predicates not strictly as C-Prolog
|
||||||
|
@ -313,7 +314,7 @@ C-Prolog
|
||||||
* Not in YAP:: C-Prolog predicates not available in YAP
|
* Not in YAP:: C-Prolog predicates not available in YAP
|
||||||
|
|
||||||
Subnodes of SICStus Prolog
|
Subnodes of SICStus Prolog
|
||||||
* Major Differences with SICStus:: Major Differences between YAP and SICStus Prolog
|
* Major Differences from SICStus:: Major Differences between YAP and SICStus Prolog
|
||||||
* Fully SICStus Compatible:: Yap predicates fully compatible with
|
* Fully SICStus Compatible:: Yap predicates fully compatible with
|
||||||
SICStus Prolog
|
SICStus Prolog
|
||||||
* Not Strictly SICStus Compatible:: Yap predicates not strictly as
|
* Not Strictly SICStus Compatible:: Yap predicates not strictly as
|
||||||
|
@ -367,14 +368,14 @@ MA". Other references should include the classical @cite{Programming in
|
||||||
Prolog}, by W.F. Clocksin and C.S. Mellish, published by
|
Prolog}, by W.F. Clocksin and C.S. Mellish, published by
|
||||||
Springer-Verlag.
|
Springer-Verlag.
|
||||||
|
|
||||||
YAP is known to build with many versions of gcc (<= gcc-2.7.2, >=
|
YAP 4.3 is known to build with many versions of gcc (<= gcc-2.7.2, >=
|
||||||
gcc-2.8.1, >= egcs-1.0.1, gcc-2.95.*) and on a variety of Unixen:
|
gcc-2.8.1, >= egcs-1.0.1, gcc-2.95.*) and on a variety of Unixen:
|
||||||
SunOS 4.1, Solaris 2.*, Irix 5.2, HP-UX 10, Dec Alpha Unix, Linux 1.2
|
SunOS 4.1, Solaris 2.*, Irix 5.2, HP-UX 10, Dec Alpha Unix, Linux 1.2
|
||||||
and Linux 2.* (RedHat 4.0 thru 5.2, Debian 2.*) in both the x86 and
|
and Linux 2.* (RedHat 4.0 thru 5.2, Debian 2.*) in both the x86 and
|
||||||
alpha platforms. It has been built on Windows using Cygwin from
|
alpha platforms. It has been built on Windows NT 4.0 using Cygwin from
|
||||||
Cygnus Solutions (see README.nt).
|
Cygnus Solutions (see README.nt) and using Visual C++ 6.0.
|
||||||
|
|
||||||
The overall copyright and permission notice for YAP can be found in
|
The overall copyright and permission notice for YAP4.3 can be found in
|
||||||
the Artistic file in this directory. YAP follows the Perl Artistic
|
the Artistic file in this directory. YAP follows the Perl Artistic
|
||||||
license, and it is thus non-copylefted freeware.
|
license, and it is thus non-copylefted freeware.
|
||||||
|
|
||||||
|
@ -901,6 +902,12 @@ compile the Prolog file @var{YAP_FILE} before entering the top-level.
|
||||||
@item -L @var{YAP_FILE}
|
@item -L @var{YAP_FILE}
|
||||||
compile the Prolog file @var{YAP_FILE} and then halt. This option is
|
compile the Prolog file @var{YAP_FILE} and then halt. This option is
|
||||||
useful for implementing scripts.
|
useful for implementing scripts.
|
||||||
|
@item -g @var{Goal}
|
||||||
|
run the goal @var{Goal} before top-level. The goal is converted from
|
||||||
|
an atom to a Prolog term.
|
||||||
|
@item -z @var{Goal}
|
||||||
|
run the goal @var{Goal} as top-level. The goal is converted from
|
||||||
|
an atom to a Prolog term.
|
||||||
@item -b @var{BOOT_FILE}
|
@item -b @var{BOOT_FILE}
|
||||||
boot code is in Prolog file @var{BOOT_FILE}. The filename must define
|
boot code is in Prolog file @var{BOOT_FILE}. The filename must define
|
||||||
the predicate '$live'/0.
|
the predicate '$live'/0.
|
||||||
|
@ -6376,6 +6383,13 @@ architecture, and on whether YAP uses the @code{GMP} multiprecision
|
||||||
library. If @code{bounded} is false, requests for @code{max_integer}
|
library. If @code{bounded} is false, requests for @code{max_integer}
|
||||||
will fail.
|
will fail.
|
||||||
|
|
||||||
|
@item max_tagged_integer
|
||||||
|
@findex max_tagged_integer (yap_flag/2 option)
|
||||||
|
@*
|
||||||
|
Read-only flag telling the maximum integer we can store as a single
|
||||||
|
word. Depends on machine and Operating System
|
||||||
|
architecture. It can be used to find the word size of the current machine.
|
||||||
|
|
||||||
@item min_integer [ISO]
|
@item min_integer [ISO]
|
||||||
@findex min_integer (yap_flag/2 option)
|
@findex min_integer (yap_flag/2 option)
|
||||||
@* Read-only flag telling the minimum integer in the
|
@* Read-only flag telling the minimum integer in the
|
||||||
|
@ -6383,6 +6397,13 @@ implementation. Depends on machine and Operating System architecture,
|
||||||
and on whether YAP uses the @code{GMP} multiprecision library. If
|
and on whether YAP uses the @code{GMP} multiprecision library. If
|
||||||
@code{bounded} is false, requests for @code{min_integer} will fail.
|
@code{bounded} is false, requests for @code{min_integer} will fail.
|
||||||
|
|
||||||
|
@item min_tagged_integer
|
||||||
|
@findex max_tagged_integer (yap_flag/2 option)
|
||||||
|
@*
|
||||||
|
Read-only flag telling the minimum integer we can store as a single
|
||||||
|
word. Depends on machine and Operating System
|
||||||
|
architecture.
|
||||||
|
|
||||||
@item n_of_integer_keys_in_bb
|
@item n_of_integer_keys_in_bb
|
||||||
@findex n_of_integer_keys_in_bb (yap_flag/2 option)
|
@findex n_of_integer_keys_in_bb (yap_flag/2 option)
|
||||||
@*
|
@*
|
||||||
|
@ -6741,6 +6762,7 @@ Library, Extensions, Builtins, Top
|
||||||
* System:: System Utilities
|
* System:: System Utilities
|
||||||
* Terms:: Utilities on Terms
|
* Terms:: Utilities on Terms
|
||||||
* Cleanup:: Call With registered Cleanup Calls
|
* Cleanup:: Call With registered Cleanup Calls
|
||||||
|
* SWI-Prolog:: SWI-Prolog emulation
|
||||||
* Timeout:: Call With Timeout
|
* Timeout:: Call With Timeout
|
||||||
* Trees:: Updatable Binary Trees
|
* Trees:: Updatable Binary Trees
|
||||||
* UGraphs:: Unweighted Graphs
|
* UGraphs:: Unweighted Graphs
|
||||||
|
@ -8014,7 +8036,7 @@ The @code{mktime/1} procedure returns the number of @var{Seconds}
|
||||||
elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time
|
elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time
|
||||||
(UTC). The user provides information on @var{Year}, @var{Month},
|
(UTC). The user provides information on @var{Year}, @var{Month},
|
||||||
@var{DayOfTheMonth}, @var{Hour}, @var{Minute}, and @var{Second}. The
|
@var{DayOfTheMonth}, @var{Hour}, @var{Minute}, and @var{Second}. The
|
||||||
@var{Hour} is returned on local time. This function uses the WIN32
|
@var{Hour} is given on local time. This function uses the WIN32
|
||||||
@code{GetLocalTime} function or the Unix @code{mktime} function.
|
@code{GetLocalTime} function or the Unix @code{mktime} function.
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@ -8386,8 +8408,8 @@ term @var{Term}.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@node Cleanup, Timeout, Terms, Library
|
@node Cleanup, SWI-Prolog, Cleanup, Library
|
||||||
@section Call With registered Cleanup Calls
|
@section Call Cleanup
|
||||||
@cindex cleanup
|
@cindex cleanup
|
||||||
|
|
||||||
@t{call_cleanup/1} and @t{call_cleanup/2} allow predicates to register
|
@t{call_cleanup/1} and @t{call_cleanup/2} allow predicates to register
|
||||||
|
@ -8452,7 +8474,134 @@ CleanUpGoals for other than the current cleanup-context.
|
||||||
Read the Source Luke.
|
Read the Source Luke.
|
||||||
|
|
||||||
|
|
||||||
@node Timeout, Trees, Cleanup, Library
|
@node SWI-Prolog, Timeout, SWI-Prolog, Library
|
||||||
|
@section SWI-Prolog Emulation
|
||||||
|
@cindex SWI-Prolog
|
||||||
|
|
||||||
|
This library provides a number of SWI-Prolog builtins that are not by
|
||||||
|
default in YAP. This library is loaded with the
|
||||||
|
@code{use_module(library(swi))} command.
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
|
||||||
|
@item append(?@var{List1},?@var{List2},?@var{List3})
|
||||||
|
@findex append/3
|
||||||
|
@snindex append/3
|
||||||
|
@cnindex append/3
|
||||||
|
Succeeds when @var{List3} unifies with the concatenation of @var{List1}
|
||||||
|
and @var{List2}. The predicate can be used with any instantiation
|
||||||
|
pattern (even three variables).
|
||||||
|
|
||||||
|
@item between(+@var{Low},+@var{High},?@var{Value})
|
||||||
|
@findex between/3
|
||||||
|
@snindex between/3
|
||||||
|
@cnindex between/3
|
||||||
|
|
||||||
|
@var{Low} and @var{High} are integers, @var{High} less or equal than
|
||||||
|
@var{Low}. If @var{Value} is an integer, $@var{Low} less or equal than
|
||||||
|
@var{Value} less or equal than @var{High}$. When @var{Value} is a
|
||||||
|
variable it is successively bound to all integers between @var{Low} and
|
||||||
|
@var{High}. If @var{High} is @const{inf} @code{between/3| is true iff
|
||||||
|
@var{Value} less or equal than @var{Low}, a feature that is particularly
|
||||||
|
interesting for generating integers from a certain value.
|
||||||
|
|
||||||
|
@item chdir(+@var{Dir})
|
||||||
|
@findex chdir/1
|
||||||
|
@snindex chdir/1
|
||||||
|
@cnindex chdir/1
|
||||||
|
|
||||||
|
Compatibility predicate. New code should use @code{working_directory/2}.
|
||||||
|
|
||||||
|
@item concat_atom(+@var{List},-@var{Atom})
|
||||||
|
@findex concat_atom/2
|
||||||
|
@snindex concat_atom/2
|
||||||
|
@cnindex concat_atom/2
|
||||||
|
|
||||||
|
@var{List} is a list of atoms, integers or floating point numbers. Succeeds
|
||||||
|
if @var{Atom} can be unified with the concatenated elements of @var{List}. If
|
||||||
|
@var{List} has exactly 2 elements it is equivalent to @code{atom_concat/3},
|
||||||
|
allowing for variables in the list.
|
||||||
|
|
||||||
|
@item concat_atom(?@var{List},+@var{Separator},?@var{Atom})
|
||||||
|
@findex concat_atom/3
|
||||||
|
@snindex concat_atom/3
|
||||||
|
@cnindex concat_atom/3
|
||||||
|
|
||||||
|
Creates an atom just like concat_atom/2, but inserts @var{Separator}
|
||||||
|
between each pair of atoms. For example:
|
||||||
|
\@example
|
||||||
|
?- concat_atom([gnu, gnat], ', ', A).
|
||||||
|
|
||||||
|
A = 'gnu, gnat'
|
||||||
|
@end example
|
||||||
|
|
||||||
|
(Unimplemented) This predicate can also be used to split atoms by
|
||||||
|
instantiating @var{Separator} and @var{Atom}:
|
||||||
|
|
||||||
|
@example
|
||||||
|
?- concat_atom(L, -, 'gnu-gnat').
|
||||||
|
|
||||||
|
L = [gnu, gnat]
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@item forall(+@var{Cond},+@var{Action})
|
||||||
|
@findex forall/2
|
||||||
|
@snindex forall/2
|
||||||
|
@cnindex forall/2
|
||||||
|
|
||||||
|
For all alternative bindings of @var{Cond} @var{Action} can be proven.
|
||||||
|
The next example verifies that all arithmetic statements in the list
|
||||||
|
@var{L} are correct. It does not say which is wrong if one proves wrong.
|
||||||
|
|
||||||
|
@example
|
||||||
|
?- forall(member(Result = Formula, [2 = 1 + 1, 4 = 2 * 2]),
|
||||||
|
Result =:= Formula).
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@item nth1(+@var{Index},?@var{List},?@var{Elem})
|
||||||
|
@findex nth1/3
|
||||||
|
@snindex nth1/3
|
||||||
|
@cnindex nth1/3
|
||||||
|
Succeeds when the @var{Index}-th element of @var{List} unifies with
|
||||||
|
@var{Elem}. Counting starts at 1.
|
||||||
|
|
||||||
|
Set environment variable. @var{Name} and @var{Value} should be
|
||||||
|
instantiated to atoms or integers. The environment variable will be
|
||||||
|
passed to @code{shell/[0-2]} and can be requested using @code{getenv/2}.
|
||||||
|
They also influence @code{expand_file_name/2}.
|
||||||
|
|
||||||
|
@item setenv(+@var{Name},+@var{Value})
|
||||||
|
@findex setenv/2
|
||||||
|
@snindex setenv/2
|
||||||
|
@cnindex setenv/2
|
||||||
|
Set environment variable. @var{Name} and @var{Value} should be
|
||||||
|
instantiated to atoms or integers. The environment variable will be
|
||||||
|
passed to @code{shell/[0-2]} and can be requested using @code{getenv/2}.
|
||||||
|
They also influence @code{expand_file_name/2}.
|
||||||
|
|
||||||
|
@item term_to_atom(?@var{Term},?@var{Atom})
|
||||||
|
@findex term_to_atom/2
|
||||||
|
@snindex term_to_atom/2
|
||||||
|
@cnindex term_to_atom/2
|
||||||
|
Succeeds if @var{Atom} describes a term that unifies with @var{Term}. When
|
||||||
|
@var{Atom} is instantiated @var{Atom} is converted and then unified with
|
||||||
|
@var{Term}. If @var{Atom} has no valid syntax, a @code{syntax_error}
|
||||||
|
exception is raised. Otherwise @var{Term} is ``written'' on @var{Atom}
|
||||||
|
using @code{write/1}.
|
||||||
|
|
||||||
|
@item working_directory(-@var{Old},+@var{New})
|
||||||
|
@findex working_directory/2
|
||||||
|
@snindex working_directory/2
|
||||||
|
@cnindex working_directory/2
|
||||||
|
|
||||||
|
Unify @var{Old} with an absolute path to the current working directory
|
||||||
|
and change working directory to @var{New}. Use the pattern
|
||||||
|
@code{working_directory(CWD, CWD)} to get the current directory. See
|
||||||
|
also @code{absolute_file_name/2} and @code{chdir/1}.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@node Timeout, Trees, SWI-Prolog, Library
|
||||||
@section Calls With Timeout
|
@section Calls With Timeout
|
||||||
@cindex timeout
|
@cindex timeout
|
||||||
|
|
||||||
|
@ -13929,9 +14078,9 @@ would have something like
|
||||||
@example
|
@example
|
||||||
void
|
void
|
||||||
init_n100(void)
|
init_n100(void)
|
||||||
@{
|
{
|
||||||
YAP_UserBackCPredicate("n100", start_n100, continue_n100, 1, 1);
|
YAP_UserBackCPredicate("n100", start_n100, continue_n100, 1, 1);
|
||||||
@}
|
}
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
|
||||||
|
@ -14300,7 +14449,7 @@ YAP compatible with the ISO-Prolog standard.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
C-Prolog Compatibility
|
C-Prolog Compatibility
|
||||||
* Major Differences with C-Prolog:: Major Differences between YAP and C-Prolog
|
* Major Differences from C-Prolog:: Major Differences between YAP and C-Prolog
|
||||||
* Fully C-Prolog Compatible:: Yap predicates fully compatible with
|
* Fully C-Prolog Compatible:: Yap predicates fully compatible with
|
||||||
C-Prolog
|
C-Prolog
|
||||||
* Not Strictly C-Prolog Compatible:: Yap predicates not strictly as C-Prolog
|
* Not Strictly C-Prolog Compatible:: Yap predicates not strictly as C-Prolog
|
||||||
|
@ -14308,7 +14457,7 @@ C-Prolog
|
||||||
* Not in YAP:: C-Prolog predicates not available in YAP
|
* Not in YAP:: C-Prolog predicates not available in YAP
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node Major Differences with C-Prolog, Fully C-Prolog Compatible, , C-Prolog
|
@node Major Differences from C-Prolog, Fully C-Prolog Compatible, , C-Prolog
|
||||||
@subsection Major Differences between YAP and C-Prolog.
|
@subsection Major Differences between YAP and C-Prolog.
|
||||||
|
|
||||||
YAP includes several extensions over the original C-Prolog system. Even
|
YAP includes several extensions over the original C-Prolog system. Even
|
||||||
|
@ -14347,7 +14496,7 @@ or by using:
|
||||||
@code{:- yap_flag(language,cprolog).}
|
@code{:- yap_flag(language,cprolog).}
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@node Fully C-Prolog Compatible, Not Strictly C-Prolog Compatible, Major Differences with C-Prolog, C-Prolog
|
@node Fully C-Prolog Compatible, Not Strictly C-Prolog Compatible, Major Differences from C-Prolog, C-Prolog
|
||||||
@subsection Yap predicates fully compatible with C-Prolog
|
@subsection Yap predicates fully compatible with C-Prolog
|
||||||
|
|
||||||
These are the Prolog built-ins that are fully compatible in both
|
These are the Prolog built-ins that are fully compatible in both
|
||||||
|
@ -14410,7 +14559,7 @@ for maximum compatibility with SICStus Prolog.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
SICStus Compatibility
|
SICStus Compatibility
|
||||||
* Major Differences with SICStus:: Major Differences between YAP and SICStus Prolog
|
* Major Differences from SICStus:: Major Differences between YAP and SICStus Prolog
|
||||||
* Fully SICStus Compatible:: Yap predicates fully compatible with
|
* Fully SICStus Compatible:: Yap predicates fully compatible with
|
||||||
SICStus Prolog
|
SICStus Prolog
|
||||||
* Not Strictly SICStus Compatible:: Yap predicates not strictly as
|
* Not Strictly SICStus Compatible:: Yap predicates not strictly as
|
||||||
|
@ -14418,7 +14567,7 @@ SICStus Prolog
|
||||||
* Not in SICstus Prolog:: Yap predicates not available in SICStus Prolog
|
* Not in SICstus Prolog:: Yap predicates not available in SICStus Prolog
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node Major Differences with SICStus, Fully SICStus Compatible, , SICStus Prolog
|
@node Major Differences from SICStus, Fully SICStus Compatible, , SICStus Prolog
|
||||||
@subsection Major Differences between YAP and SICStus Prolog.
|
@subsection Major Differences between YAP and SICStus Prolog.
|
||||||
|
|
||||||
Both YAP and SICStus Prolog obey the Edinburgh Syntax and are based on
|
Both YAP and SICStus Prolog obey the Edinburgh Syntax and are based on
|
||||||
|
|
Reference in New Issue