[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, master, updated. release_1-9-10-55-g44
From: |
Neil Jerram |
Subject: |
[Guile-commits] GNU Guile branch, master, updated. release_1-9-10-55-g44ecb50 |
Date: |
Mon, 26 Apr 2010 21:19:12 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=44ecb503787b4ca3eb68975e15c511638c198740
The branch, master has been updated
via 44ecb503787b4ca3eb68975e15c511638c198740 (commit)
from d93c0bc4c682a6d6b0eb1db59e6b4fcaa2389a36 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 44ecb503787b4ca3eb68975e15c511638c198740
Author: Neil Jerram <address@hidden>
Date: Mon Apr 26 22:09:20 2010 +0100
Fix inconsistent sectioning, causing make to fail
* doc/ref/guile.texi (Top): Remove @raisesections and @lowersections
around scheme-ideas.texi.
* doc/ref/scheme-ideas.texi (About Data, ...): Instead remove one
"sub" from every node here apart from the chapter node.
* doc/ref/scheme-ideas.texi (Evaluating, Eval Variable, Eval
Procedure, Eval Special, Lexical Scope, Scoping Example): Turn
subheadings back into subsubsections, and reinstate corresponding
menus. (These had to become headings, rather than (sub)*sections, when
the top level item in scheme-ideas.texi was a section. Now it's a
chapter again, they can go back to being (sub)*sections.)
-----------------------------------------------------------------------
Summary of changes:
doc/ref/guile.texi | 2 -
doc/ref/scheme-ideas.texi | 87 ++++++++++++++++++++++-----------------------
2 files changed, 43 insertions(+), 46 deletions(-)
diff --git a/doc/ref/guile.texi b/doc/ref/guile.texi
index dc3dc07..a3a212a 100644
--- a/doc/ref/guile.texi
+++ b/doc/ref/guile.texi
@@ -208,9 +208,7 @@ Indices
@include tour.texi
address@hidden
@include scheme-ideas.texi
address@hidden
@include scheme-reading.texi
@node Programming in Scheme
diff --git a/doc/ref/scheme-ideas.texi b/doc/ref/scheme-ideas.texi
index e111919..99c07b9 100644
--- a/doc/ref/scheme-ideas.texi
+++ b/doc/ref/scheme-ideas.texi
@@ -31,7 +31,7 @@ Reading}.
@node About Data
address@hidden Data Types, Values and Variables
address@hidden Data Types, Values and Variables
This section discusses the representation of data types and values, what
it means for Scheme to be a @dfn{latently typed} language, and the role
@@ -47,7 +47,7 @@ variable.
@node Latent Typing
address@hidden Latent Typing
address@hidden Latent Typing
The term @dfn{latent typing} is used to describe a computer language,
such as Scheme, for which you cannot, @emph{in general}, simply look at
@@ -84,7 +84,7 @@ that Scheme programs use data types, values and variables.
@node Values and Variables
address@hidden Values and Variables
address@hidden Values and Variables
Scheme provides many data types that you can use to represent your data.
Primitive types include characters, strings, numbers and procedures.
@@ -121,7 +121,7 @@ the variable happens to be storing at a particular moment.
@node Definition
address@hidden Defining and Setting Variables
address@hidden Defining and Setting Variables
To define a new variable, you use Scheme's @code{define} syntax like
this:
@@ -202,7 +202,7 @@ of an existing variable.
@node About Procedures
address@hidden The Representation and Use of Procedures
address@hidden The Representation and Use of Procedures
This section introduces the basics of using and creating Scheme
procedures. It discusses the representation of procedures as just
@@ -221,7 +221,7 @@ explicit @code{lambda} expression.
@node Procedures as Values
address@hidden Procedures as Values
address@hidden Procedures as Values
One of the great simplifications of Scheme is that a procedure is just
another type of value, and that procedure values can be passed around
@@ -280,7 +280,7 @@ procedure value.
@node Simple Invocation
address@hidden Simple Procedure Invocation
address@hidden Simple Procedure Invocation
A procedure invocation in Scheme is written like this:
@@ -341,7 +341,7 @@ its arguments.)
@node Creating a Procedure
address@hidden Creating and Using a New Procedure
address@hidden Creating and Using a New Procedure
Scheme has lots of standard procedures, and Guile provides all of these
via predefined top level variables. All of these standard procedures
@@ -423,7 +423,7 @@ same ways.
@node Lambda Alternatives
address@hidden Lambda Alternatives
address@hidden Lambda Alternatives
Since it is so common in Scheme programs to want to create a procedure
and then store it in a variable, there is an alternative form of the
@@ -487,7 +487,7 @@ subsequently read input.)
@node About Expressions
address@hidden Expressions and Evaluation
address@hidden Expressions and Evaluation
So far, we have met expressions that @emph{do} things, such as the
@code{define} expressions that create and initialize new variables, and
@@ -521,7 +521,7 @@ expressions.
@node Evaluating
address@hidden Evaluating Expressions and Executing Programs
address@hidden Evaluating Expressions and Executing Programs
In Scheme, the process of executing an expression is known as
@dfn{evaluation}. Evaluation has two kinds of result:
@@ -585,16 +585,15 @@ one of Scheme's special syntactic expressions.
The following subsections describe how each of these types of expression
is evaluated.
address@hidden @menu
address@hidden * Eval Literal:: Evaluating literal data.
address@hidden * Eval Variable:: Evaluating variable references.
address@hidden * Eval Procedure:: Evaluating procedure invocation
expressions.
address@hidden * Eval Special:: Evaluating special syntactic
expressions.
address@hidden @end menu
-
address@hidden @node Eval Literal
address@hidden
+* Eval Literal:: Evaluating literal data.
+* Eval Variable:: Evaluating variable references.
+* Eval Procedure:: Evaluating procedure invocation expressions.
+* Eval Special:: Evaluating special syntactic expressions.
address@hidden menu
address@hidden Evaluating Literal Data
address@hidden Eval Literal
address@hidden Evaluating Literal Data
When a literal data expression is evaluated, the value of the expression
is simply the value that the expression describes. The evaluation of a
@@ -629,8 +628,8 @@ cannot be expressed as literal data; they must be created
using a
using the shorthand form of @code{define} (@pxref{Lambda Alternatives}).
address@hidden @node Eval Variable
address@hidden Evaluating a Variable Reference
address@hidden Eval Variable
address@hidden Evaluating a Variable Reference
When an expression that consists simply of a variable name is evaluated,
the value of the expression is the value of the named variable. The
@@ -657,8 +656,8 @@ If there is no variable with the specified name, evaluation
of the
variable reference expression signals an error.
address@hidden @node Eval Procedure
address@hidden Evaluating a Procedure Invocation Expression
address@hidden Eval Procedure
address@hidden Evaluating a Procedure Invocation Expression
This is where evaluation starts getting interesting! As already noted,
a procedure invocation expression has the form
@@ -748,8 +747,8 @@ obtained from @var{arg1} as its arguments. The resulting
value is a
numeric value that is the length of the argument string, which is 12.
address@hidden @node Eval Special
address@hidden Evaluating Special Syntactic Expressions
address@hidden Eval Special
address@hidden Evaluating Special Syntactic Expressions
When a procedure invocation expression is evaluated, the procedure and
@emph{all} the argument expressions must be evaluated before the
@@ -793,7 +792,7 @@ syntax, see @xref{Syntax Summary}.
@node Tail Calls
address@hidden Tail calls
address@hidden Tail calls
@cindex tail calls
@cindex recursion
@@ -909,7 +908,7 @@ those explicitly described are guaranteed.
@node The REPL
address@hidden Using the Guile REPL
address@hidden Using the Guile REPL
If you start Guile without specifying a particular program for it to
execute, Guile enters its standard Read Evaluate Print Loop --- or
@@ -938,7 +937,7 @@ REPL and checking that it gives the expected @var{result}.
@node Syntax Summary
address@hidden Summary of Common Syntax
address@hidden Summary of Common Syntax
This subsection lists the most commonly used Scheme syntactic
expressions, simply so that you will recognize common special syntax
@@ -983,7 +982,7 @@ until either there are no expressions left, or one of them
evaluates to
@node About Closure
address@hidden The Concept of Closure
address@hidden The Concept of Closure
@cindex closure
@@ -1009,7 +1008,7 @@ more detail.
@end menu
@node About Environments
address@hidden Names, Locations, Values and Environments
address@hidden Names, Locations, Values and Environments
@cindex location
@cindex environment
@@ -1057,7 +1056,7 @@ closure; the next subsection shows how it is done.
@node Local Variables
address@hidden Local Variables and Environments
address@hidden Local Variables and Environments
@cindex local variable
@cindex variable, local
@@ -1098,7 +1097,7 @@ expression, and therefore the value of the variable
@code{area}.
@node Chaining
address@hidden Environment Chaining
address@hidden Environment Chaining
@cindex shadowing an imported variable binding
@cindex chaining environments
@@ -1149,7 +1148,7 @@ level environment.
@node Lexical Scope
address@hidden Lexical Scope
address@hidden Lexical Scope
The rules that we have just been describing are the details of how
Scheme implements ``lexical scoping''. This subsection takes a brief
@@ -1180,13 +1179,13 @@ scoping, the following subsection presents an example
of non-lexical
scoping and examines in detail how its behavior differs from the
corresponding lexically scoped code.
address@hidden @menu
address@hidden * Scoping Example:: An example of non-lexical
scoping.
address@hidden @end menu
address@hidden
+* Scoping Example:: An example of non-lexical scoping.
address@hidden menu
address@hidden @node Scoping Example
address@hidden An Example of Non-Lexical Scoping
address@hidden Scoping Example
address@hidden An Example of Non-Lexical Scoping
To demonstrate that non-lexical scoping does exist and can be useful, we
present the following example from Emacs Lisp, which is a ``dynamically
@@ -1291,7 +1290,7 @@ this identifier refer to the top level variable.
@node Closure
address@hidden Closure
address@hidden Closure
Consider a @code{let} expression that doesn't contain any
@code{lambda}s:
@@ -1359,7 +1358,7 @@ present examples that explore the usefulness of this
concept.
@node Serial Number
address@hidden Example 1: A Serial Number Generator
address@hidden Example 1: A Serial Number Generator
This example uses closure to create a procedure with a variable binding
that is private to the procedure, like a local variable, but whose value
@@ -1401,7 +1400,7 @@ object with an association to this environment.
@node Shared Variable
address@hidden Example 2: A Shared Persistent Variable
address@hidden Example 2: A Shared Persistent Variable
This example uses closure to create two procedures, @code{get-balance}
and @code{deposit}, that both refer to the same captured local
@@ -1452,7 +1451,7 @@ that would not be accessible at top level.
@node Callback Closure
address@hidden Example 3: The Callback Closure Problem
address@hidden Example 3: The Callback Closure Problem
A frequently used programming model for library code is to allow an
application to register a callback function for the library to call when
@@ -1510,7 +1509,7 @@ correctly.
@node OO Closure
address@hidden Example 4: Object Orientation
address@hidden Example 4: Object Orientation
Closure is the capture of an environment, containing persistent variable
bindings, within the definition of a procedure or a set of related
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, master, updated. release_1-9-10-55-g44ecb50,
Neil Jerram <=