continuation return semantics added

parent 1c968183
......@@ -2573,6 +2573,7 @@ Guile log also sports an iso-prolog interface as a logic programming interface b
* scheme:: Hooking in scheme expressions
* functors:: map funcitons to functions
* closures:: Using closures in prolog
* continuations:: Advanced management af what to continue with
* extended matching:: Matching extensions deviating from normal prolog
* prolog-dynamic-functions:: A discussion of guile log's version of this
* dynamic-features:: Special construct to manage dynamic objects
......@@ -2981,6 +2982,91 @@ To reflect the closure we have from @code{[use-modules (logic guile-log guile-pr
@code{prolog closure_code_ref(Cl,F)}, will expose the code of the closure @code{Cl} into @code{F}.
@node continuations
@section continuation expressions
Prolog passes all in,out,in/out values as arguments to the predicate. This has the drawback, for out variables, that the variables need to be allocated from the heap and adds complexity and overhead to the predicate. If in stead the out variables could be passed over without making a box for it first we get possible much less complexity of the predicate and hence better performance. So let's see the semantics that I plan to add to guile-log and already works today in a experimental compiler of an experimental prolog VM that is included in the guile-log sources. Also vy managing the continuation return values we increase the expressability of our program. The extension uses the binary @code{<=} operator and for annonymous continuation forms @code{cc}. So the basic form is
@findex <=
@findex cc
@verbatim
% Executing a goal with out variables
[V1, ..., Vn] <= goal.
% Executing a goal with named out variables placed where out may be
% referenced by executing the goal 'F(...)'
F(V1, ..., Vn) <= goal.`
% lets make a predicate that outputs a pure out variable, cc(X,...)
% exits to the prevoius `<=` and return X,... to it.
sum(X,Y) :-
Z is X + Y,
cc(Z).
% and let's use it
printsum(X,Y) :-
[Z1] <= sum(X,Y),
write(output(Z1)),nl.
% we can also just inline code
printsum(X,Y) :-
[Z1] <= (X < Y -> (Q is X + Y, cc(Q)) ; cc(X)),
write(output(Z1)),nl.
@end verbatim
Now, it it is possible to compile ordinary old versions of prolog code to take advantage of this system. But I tend to like the clarity of the code where out variables are explicit.
A possible extention for this would be a @code{Tag(V1,...)} version, e.g.
@verbatim
% we can also just inline code
printsum(X,Y) :-
A(Z1) <= (X < Y -> (Q is X + Y, cc(Q)) ; A(X)),
write(output(Z1)),nl.
@end verbatim
Then if we have multiple exit points then one can sellect the outer one with the correct tag. Note that this is very similar to @code{catch/throw} in prolog. The taged one only works in explicit code, if tags needs to be catched from inside an evaluation of a predicate, then use @code{catch/throw}. This system has it's value because the @code{catch/throw} is pinned down to assume a predicate can indeed make a throw, but with the @code{cc(...)} and @code{F(...)} the predicates at tail position in the goal clause is the only one that allow a @code{cc/F}-throw. Also a difference is that @code{cc} is a continuation, hence the name, e.g. it is not a throw or return in which the bindings are undone as with throw catch.
So to summarize, this extension is only to enable more effective code and enable more opertunity for uses of the stack, @code{catach/throw} is more generall and don't enable this oppertunity due to this.
Some examples:
@verbatim
?- [X] <= cc(1).
X = 1.
?- [X] <= cc(1,2).
no
?- [X,Y] <= cc(1,2).
X = 1,
Y = 2.
?- X <= cc(1,2).
X = [1, 2].
?- F(X) <= ((Y <= F(1)),(write(y(Y)),nl))
X = 1,
F = lam.
?- F(|X) <= ((Y <= F(1)),(write(y(Y)),nl))
X = [1],
F = lam.
?- F(A|X) <= ((Y <= F(1,2,3)),(write(y(Y)),nl))
A = 1,
X = [2, 3],
F = lam.
@end verbatim
@node extended matching
@section Extended Matching.
Good indexing of prolog clauses means mainly that fewer misstakes of leaving
......@@ -3034,7 +3120,6 @@ In the future we will allow som basic tests like @code{var,integer,...} etc that
@node prolog-dynamic-functions
@section Explaing the guile-log dynamic functions
Dynamic functions in guile-log prolog follows the iso prolog interface. But they are more powerful. They belong to a class of object that we can call dynamic objects for which dynamic features can be added how to backtrack store and restore state. The driving feature is that the state infromation is updated in a funcitonal manner and that its encapsulated with a thread safe handle. But the datastructure are not only functional, in order to have decent properties in prolog program and let them for example back track with the logic program we allow a mark and reset feature. To understand this scope please read about dynamic features. The dynamic functions are optimized for fast lookup and guile log prolog is fully indexed and can yield the matching items faster than it takes to actually perform any common match consequent. The target is for systems that update seldom and do lookup often. The dynamic functions @code{assert*} compainion will compile the program to bytecode/native for faster execution. Do not use dynamic functions as a hash table that updates often, for that use the hash table library. Also currently at most 10000 elements can be stored for a dynamic function. (The algorithm scales badly after that and we do not support larger than that).
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: Index</title>
......@@ -19,16 +19,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -37,10 +37,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -48,7 +47,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<a name="Index"></a>
<div class="header">
<p>
......@@ -128,6 +127,7 @@ Previous: <a href="persistance.html#persistance" accesskey="p" rel="prev">persis
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-_003c_003cdefine_002d_003e_003e"><code>&lt;&lt;define-&gt;&gt;</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-_003c_003cdefine_003e_003e"><code>&lt;&lt;define&gt;&gt;</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-_003c_003clambda_003e_003e"><code>&lt;&lt;lambda&gt;&gt;</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="continuations.html#index-_003c_003d"><code>&lt;=</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="continuations.html#continuations">continuations</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-_003c_003d_003d_003e"><code>&lt;==&gt;</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-_003c_003d_003e"><code>&lt;=&gt;</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="dynamics.html#index-_003cabort_003e"><code>&lt;abort&gt;</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="dynamics.html#dynamics">dynamics</a></td></tr>
......@@ -324,6 +324,7 @@ Previous: <a href="persistance.html#persistance" accesskey="p" rel="prev">persis
<tr><td></td><td valign="top"><a href="prolog-canonical.html#index-canonize"><code>canonize</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="prolog-canonical.html#prolog-canonical">prolog canonical</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-case"><code>case</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="guile_002dlog.html#index-CC"><code>CC</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="guile_002dlog.html#guile_002dlog">guile-log</a></td></tr>
<tr><td></td><td valign="top"><a href="continuations.html#index-cc"><code>cc</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="continuations.html#continuations">continuations</a></td></tr>
<tr><td></td><td valign="top"><a href="closures.html#index-close_005ferror_005ffalse"><code>close_error_false</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="closures.html#closures">closures</a></td></tr>
<tr><td></td><td valign="top"><a href="closures.html#index-close_005ferror_005ftrue"><code>close_error_true</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="closures.html#closures">closures</a></td></tr>
<tr><td></td><td valign="top"><a href="closures.html#index-closure_005fcode_005fref"><code>closure_code_ref</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="closures.html#closures">closures</a></td></tr>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: acumulators/generators</title>
......@@ -20,16 +20,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -38,10 +38,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -49,7 +48,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<a name="acumulators_002fgenerators"></a>
<div class="header">
<p>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: dynamic-functions</title>
......@@ -20,16 +20,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -38,10 +38,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -49,7 +48,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<a name="dynamic_002dfunctions"></a>
<div class="header">
<p>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: dynamics</title>
......@@ -20,16 +20,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -38,10 +38,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -49,7 +48,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<a name="dynamics"></a>
<div class="header">
<p>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: expressions</title>
......@@ -20,16 +20,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -38,10 +38,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -49,7 +48,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<a name="expressions"></a>
<div class="header">
<p>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: garbage-collect</title>
......@@ -20,16 +20,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -38,10 +38,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -49,7 +48,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<a name="garbage_002dcollect"></a>
<div class="header">
<p>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: guile-log</title>
......@@ -20,16 +20,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -38,10 +38,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -49,7 +48,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<a name="guile_002dlog"></a>
<div class="header">
<p>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: Top</title>
......@@ -19,16 +19,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -37,10 +37,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -48,7 +47,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<h1 class="settitle" align="center">Preliminary Manual</h1>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: kanren</title>
......@@ -20,16 +20,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -38,10 +38,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -49,7 +48,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<a name="kanren"></a>
<div class="header">
<p>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: parser combinators</title>
......@@ -20,16 +20,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -38,10 +38,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -49,7 +48,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<a name="parser-combinators"></a>
<div class="header">
<p>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: parsing</title>
......@@ -20,16 +20,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
......@@ -38,10 +38,9 @@ pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
......@@ -49,7 +48,7 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<body lang="en">
<a name="parsing"></a>
<div class="header">
<p>
......
......@@ -2,7 +2,7 @@
<html>
<!-- This is a preliminary manual of guile-log package for guile-2.0
Copyright (C) 2012 Stefan Israelsson Tampe -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Preliminary Manual: postpone</title>
......@@ -20,16 +20,16 @@ Copyright (C) 2012 Stefan Israelsson Tampe -->