1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 22:31:12 +02:00

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.)
This commit is contained in:
Neil Jerram 2010-04-26 22:09:20 +01:00
parent d93c0bc4c6
commit 44ecb50378
2 changed files with 43 additions and 46 deletions

View file

@ -208,9 +208,7 @@ Indices
@include tour.texi
@raisesections
@include scheme-ideas.texi
@lowersections
@include scheme-reading.texi
@node Programming in Scheme

View file

@ -31,7 +31,7 @@ Reading}.
@node About Data
@subsection Data Types, Values and Variables
@section 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
@subsubsection Latent Typing
@subsection 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
@subsubsection Values and Variables
@subsection 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
@subsubsection Defining and Setting Variables
@subsection 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
@subsection The Representation and Use of Procedures
@section 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
@subsubsection Procedures as Values
@subsection 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
@subsubsection Simple Procedure Invocation
@subsection Simple Procedure Invocation
A procedure invocation in Scheme is written like this:
@ -341,7 +341,7 @@ its arguments.)
@node Creating a Procedure
@subsubsection Creating and Using a New Procedure
@subsection 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
@subsubsection Lambda Alternatives
@subsection 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
@subsection Expressions and Evaluation
@section 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
@subsubsection Evaluating Expressions and Executing Programs
@subsection 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.
@c @menu
@c * Eval Literal:: Evaluating literal data.
@c * Eval Variable:: Evaluating variable references.
@c * Eval Procedure:: Evaluating procedure invocation expressions.
@c * Eval Special:: Evaluating special syntactic expressions.
@c @end menu
@menu
* Eval Literal:: Evaluating literal data.
* Eval Variable:: Evaluating variable references.
* Eval Procedure:: Evaluating procedure invocation expressions.
* Eval Special:: Evaluating special syntactic expressions.
@end menu
@c @node Eval Literal
@subsubheading Evaluating Literal Data
@node Eval Literal
@subsubsection 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}).
@c @node Eval Variable
@subsubheading Evaluating a Variable Reference
@node Eval Variable
@subsubsection 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.
@c @node Eval Procedure
@subsubheading Evaluating a Procedure Invocation Expression
@node Eval Procedure
@subsubsection 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.
@c @node Eval Special
@subsubheading Evaluating Special Syntactic Expressions
@node Eval Special
@subsubsection 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
@subsubsection Tail calls
@subsection Tail calls
@cindex tail calls
@cindex recursion
@ -909,7 +908,7 @@ those explicitly described are guaranteed.
@node The REPL
@subsubsection Using the Guile REPL
@subsection 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
@subsubsection Summary of Common Syntax
@subsection 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
@subsection The Concept of Closure
@section The Concept of Closure
@cindex closure
@ -1009,7 +1008,7 @@ more detail.
@end menu
@node About Environments
@subsubsection Names, Locations, Values and Environments
@subsection 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
@subsubsection Local Variables and Environments
@subsection 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
@subsubsection Environment Chaining
@subsection Environment Chaining
@cindex shadowing an imported variable binding
@cindex chaining environments
@ -1149,7 +1148,7 @@ level environment.
@node Lexical Scope
@subsubsection Lexical Scope
@subsection 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.
@c @menu
@c * Scoping Example:: An example of non-lexical scoping.
@c @end menu
@menu
* Scoping Example:: An example of non-lexical scoping.
@end menu
@c @node Scoping Example
@subsubheading An Example of Non-Lexical Scoping
@node Scoping Example
@subsubsection 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
@subsubsection Closure
@subsection 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
@subsubsection Example 1: A Serial Number Generator
@subsection 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
@subsubsection Example 2: A Shared Persistent Variable
@subsection 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
@subsubsection Example 3: The Callback Closure Problem
@subsection 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
@subsubsection Example 4: Object Orientation
@subsection 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