This page contains a listing of typos and other errors in the Dylan Reference Manual. If you find additional errors, please let us know at dylan-lang@googlegroups.com. Questions about Dylan, suggestions for improvements to the language, and general discussion should be directed to one of the communications channels listed on the opendylan.org community page.
This page was originally created by Andrew Shalit (and was extended by the Gwydion Dylan Maintainers later on). He writes:
Thanks go to Tom Emerson, for suggesting that I put together this page, and for supplying me with an initial list of typos.
subtype?(type-union*(s1...sm) type-union*(t1...tn))
is missing a comma and should read
subtype?(type-union*(s1...sm), type-union*(t1...tn))
limited(<integer> ,min: 0 max: 255)
it should read
limited(<integer>, min: 0, max: 255)
Closures. The second paragraph in this section talks about the score parameter, while the code actually uses a parameter called points.
=> avg :: <number>;
but the example is meant to illustrate how, if you do not provide both, the first word is parsed as the binding name even if it appears to be the name of a type. The return value declaration should read
=> <number>;
Instantiable Limited Collection Types.
<deque>
is missing from the list of
instantiable limited collection types. There is a method specialized
on <deque>
in the list of methods
for limited
,
below <stretchy-vector> on page 265, the discussion of which indicates
that it is instantiable.define open generic m ( x ) ;
define open class <t> ( <object>) end class <t>;
define open class <s> ( <object>) end class <s>;
define method m ( s :: <s> ) end method m ;
define sealed domain m ( <t> );
define class <c> ( <s> , <t> ) end;
In addition, the phrase, The definition of <c> would be valid if it
appeared in the same library as the preceding definitions or in a library used by
them…
is not meant to imply that <c> could be defined in a
library used by the library in which <t> and <s> are
defined. This is clearly impossible because of the prohibition against circular library
use paths. Rather, this phrase refers to the following possible scenario:
Library L1
define open class <t> ( .. ) ... end;
define open class <s> ( .. ) ... end;L2 (uses L1)
define class <c> (<s>, <t>) end;L3 (uses L1)
define generic m (x);
define method m (s :: <s>) ... end;
define sealed domain m (<t>);
These libraries can only be used together if L3 also uses (directly or indirectly) L2, and therefore has access to the class <c> before the domain is sealed.
apply(min 5, 7 list(3, 1, 4))
it should read
apply(min, 5, 7, list(3, 1, 4))
(Note the additional comma after the number 7 in the correct version.)
permitin the last sentence describing the final example is incorrect. The word
recognizeshould be used instead, yielding
Methods added to the generic function must have one required parameter, they must accept keyword arguments, and they must recognize the keyword argument strength:.
This change follows the definitions of the terms permit
and recognize
as
given on page 94, in the description of parameter list congruency.
The time of the binding specified by the operand (e.g. + or *) is unspecified.
operand
should be operator
, yielding
The time of the binding specified by the operator (e.g. + or *) is unspecified.
A generic function definition includes a parameter list, which constrains the methods that can be added to the generic function; some aspects of the parameter must be matched by any method added.the phrase
…some aspects of the parameter must…should refer to the parameter list, i.e.,
…some aspects of the parameter list must be matched by any method added.
Specialization is useful in three way:
it is missing an s
and should read
Specialization is useful in three ways:
If the generic function's parameter list does not contain a rest value declaration, then
fragmentand
(4).
There is no defaultin the description of init-function:.
This class is intended but not required to provide more precision that <double-float>.
that
should be than
, yielding
This class is intended but not required to provide more precision than <double-float>.
Whenis misspelled
Whe.
::.
Tests whether a slot has been initializedis missing a period at the end of the sentence.
of of.
Returns the class precedence list a class
it is missing the word of
and should read
Returns the class precedence list of a class
same binding to imported
should read
same binding to be imported
(There is no option to rename on export)
so it cannot being excluded
should read
so it cannot be excluded
letand
(here:
let(whole-part :: <integer>, remainder :: <real>) = truncate(amount);
The handler is function
it is missing the word a
and should read
The handler is a function
( test )should not be in the until heading.
executationshould be
execution.
$permanent-hash-statehas a leading space character (it shouldn't).
inertwas an early term for what later became known as
sealedand is not used in the DRM.
BNF of [lexical syntax]should capitalize BNF (it is written
bnf of.)
xshould be set in italic.
?, ??, andshould be set in body font, not monospaced font.
A reference to NAME,
nameshould be set in small caps instead of regular capitals.
array is modified by this operation.,
arrayshould be in italics.
Iof
Ifis in Courier, and not the standard body font.
unary-operatorand
binary-operatorshould be set in bold.
wordshould be set in normal, not italic.
hex-digitsshould be set in bold.
parsed-macro-call.
pattern-variable, see
substitution(p. 429) for the correct one.