Index
Index
Symbols
*-/!, function name convention#(), the empty list#(…), list literal syntax#[…], vector literal syntax#"…", unique string literal syntax#all-keys[1]#f[1] [2] [3]#key[1] [2]#next#rest[1] [2]#t[1] [2] [3]#-words$, constant name convention$permanent-hash-state%, used in format directives&, logical 'and' [1] [2]+//, single-line comment syntax., slot reference syntax [1] [2]*, variable name convention:, in keyword syntax:=[1] [2]<<=<…>, type name convention<abort><array>[1] [2]<boolean>[1] [2]<byte-string><character><class><collection>[1] [2]<complex><condition>[1] [2]<deque><double-float><empty-list><error><explicit-key-collection>[1] [2]<extended-float><float><function>[1] [2]<generic-function>[1] [2]<integer><list><method>[1] [2]<mutable-collection>[1] [2] [3]<mutable-explicit-key-collection><mutable-sequence><number><object-table><object><pair><range><rational><real><restart>[1] [2]<sealed-object-error><sequence>[1] [2]<serious-condition><simple-error><simple-object-vector><simple-restart><simple-vector><simple-warning><single-float><singleton>[1] [2]<stretchy-collection>[1] [2]<stretchy-vector><string><symbol><table>[1] [2]<type-error><type><unicode-string><vector><warning>===>>=???[…], element reference syntax [1] [2]- in macro calls [1] [2]
- order of execution of
\, escape character [1] [2] [3] [4]^|, logical 'or' [1] [2]~, logical negation [1] [2]~=~=='…', character literal syntax/*…*/, delimited comment syntax"…", string literal syntax
A
<abort>abort- aborting code
abs- abstract classes [1] [2]
- accept a variable number of arguments
- accept all keyword arguments
- accept keyword arguments
- accessible bindings in a module [1] [2]
- accessing slots
- accessor name convention
addadd!add-methodadd-newadd-new!- adding keys to a collection
- adjectives
- alignment, of collections during iteration [1]
all-superclasses- allocation
- alphabetic characters
always- ambiguous methods [1] [2]
- and, logical operator
- angle bracket,
<…>, type name convention any?- applicable handler, locating
- applicable methods
applicable-method?apply[1] [2]arefaref-setter- argument lists
- See parameter lists
- argument order
- arguments
- arithmetic operations [1]
<array>[1] [2]- array reference syntax
asas-lowercaseas-lowercase!as-uppercaseas-uppercase!ash- assignment [1] [2]
- assignment operator
- asterisk, variable name convention
author:, interchange format keyword- auxiliary rule sets [1]
B
- backslash escape sequence [1] [2]
backward-iteration-protocol[1] [2]- bare methods [1]
- See also local methods
- base types [1]
beginbegin…endbracketing in macros- binary operator call
- binding-patterns, matching of
- bindings
- bitwise operations [1]
- blank lines, in interchange format
- blending of tokens [1] [2] [3]
block[1] [2] [3] [4]- body
<boolean>- boolean values
- as literal constants
- See also true and false
- bracketed fragments
- bracketed-patterns, matching of
break- built-in definition macros
- built-in macros
- sample definitions of [1]
- built-in modules
- built-in statement macros
<byte-string>
C
- calling exception systems
case- catch
ceilingceiling/cerror- changing
<character>- characters
- as literal constants [1] [2]
- in the lexical syntax [1]
- literal constant BNF
- operations on [1]
check-typechoosechoose-by- circular references
- See infinite recursion
- circularity
<class>- class allocated slots, initialization of [1]
- class precedence lists
- computation of [1]
- definition of
- class slot allocation [1] [2]
- classes [1]
- abstract or concrete
- as a kind of type
- built-in [1]
- characteristics of [1]
- created by
define class - disjointness rule for
- explicitly known
- features of [1]
- inheritance of [1]
- overview of
- primary or free
- restrictions on built-in
- sealed or open
- sealing [1]
- cleanup clauses [1] [2]
- closed over bindings
- closures [1]
- code body, in interchange format
- coercing objects [1]
<collection>[1] [2]- collections [1]
- adding and removing elements [1] [2]
- alignment of [1]
- allocation of [1]
- alteration of [1]
- copying
- defining new classes of [1]
- destructive operations on
- element types of [1]
- freshness of
- instability under iteration
- iteration protocol of [1] [2]
- key tests of
- keys of [1] [2]
- limited [1]
- mapping and reducing [1]
- modifying during iteration
- mutability of [1] [2]
- natural order of iteration
- operations on [1]
- properties of [1]
- removing elements from [1] [2]
- reordering [1]
- searching [1] [2] [3] [4] [5] [6]
- selecting elements of [1]
- sorting
- stability under iteration
- testing [1] [2] [3] [4]
- that may grow and shrink
- user-defined
- comments [1]
- comparison operations [1]
- compilation, and macros [1]
complement<complex>compose- computational equivalence
concatenateconcatenate-as- concrete classes [1] [2]
<condition>[1] [2]- condition messages [1]
- condition system
condition-format-argumentscondition-format-string- conditional execution
- statements implementing [1]
- conditions [1]
- congruency
conjoin- consistency among class precedence lists
- constant bindings [1] [2]
- constant slots [1] [2]
- constants
- name convention of
- See also literal constants
- constituents
- control characters
- controlling access to bindings and objects
- conventions for binding names
copy-sequence- copying objects [1]
copyright:, interchange format keywordcreateclause of a module definition- creating
- classes [1]
- instances [1] [2]
- limited collections
- limited types
- See also initialization protocol
curry
D
- data structures, collections as
- deallocating objects
- debuggers
- declaring
- characteristics of classes [1]
- characteristics of generic functions [1]
- ownership of module variables
- sealing information [1]
- types of slots
- declining to handle a condition
- default values
default-handler[1] [2]- defaulted initialization arguments
defineas a reserved worddefine class[1] [2]define constantdefine domaindefine genericdefine librarydefine macrodefine methoddefine moduledefine sealed domain[1] [2]define sealed methoddefine variable-definersuffix- defining
- classes [1]
- generic functions
- libraries
- modules
- definition macros [1]
- definitions
- BNF of
- built-in [1]
- processing of
- said not to execute
- special rules for pattern matching of [1]
- top-level
- used to create module bindings
- delimited comments
<deque>- destructive operations
- naming convention for
- on collections [1] [2]
dimensiondimensions- direct instance relationship
- direct subclass relationship
- direct superclass relationship
direct-subclassesdirect-superclassesdisjoin- disjointness of types [1]
- division by zero
- division of integers [1] [2]
dodo-handlers[1] [2]- dollar-sign, constant name convention
<double-float>- duplicate keywords
- Dylan interchange format
dylanlibrarydylanmoduledylanmodule and operator names- Dylan programming language [1]
dylan-usermodule- dynamic condition handlers
E
each-subclassslot allocation- efficiency
- of simple-vectors
- See also sealing
element[1] [2] [3]- element reference syntax [1] [2]
- in macro calls [1] [2]
- order of execution of
- element types of collections [1]
- and subclassing [1]
- and user-defined collections
element-setter[1] [2] [3]- elements of collections
<empty-list>empty?endas a reserved word- equality
- equality testing operations [1]
- equivalence classes
- equivalence predicates
- equivalent types
<error>error- errors, as a kind of condition
- escape characters
- escape sequence
- escaping names
even?every?- exception clause of the
blockstatement - exception system
- exceptions [1]
- background [1]
- which are not errors
- exclamation point, name convention
- execution of expressions
- exiting exception system
- exits [1] [2]
- explicit definitions
- explicit key collections
<explicit-key-collection>[1] [2]- explicitly known objects [1]
- exponentiation
- export information of a library
- exporting
- bindings [1] [2]
- modules
- reserved words
- expressions
<extended-float>- extensible grammar [1]
F
- false and true
- false object,
#f - 'field,' as a synonym for 'slot'
- file header, in interchange format
fill!- filtering slot values
find-keyfind-methodfirst- first class
first-setter<float>- floating point numbers, combined with nonfloats
floorfloor/- flow of control, nonstandard
- See also exits, nonlocal exits
for- formal recovery
- format arguments
- format directives
- format strings
- forward references
forward-iteration-protocol[1] [2]- fragments
- free classes [1] [2]
- freshly allocated collections
<function>[1] [2]- function calls [1] [2]
- and method dispatch [1]
- order of execution of
- shorthand for
- function macros [1] [2]
function-argumentsfunction-return-valuesfunction-specializers- functions [1]
G
- garbage collection
gcd- general subclass relationship
- general superclass relationship
- generic functions [1] [2]
- calling
- characteristics of [1]
- created by
define generic - created implicitly with
define method - defining
- explicitly known
- parameter lists of [1] [2]
- sealed or open
- sealing [1]
- specializing
- with no required parameters
<generic-function>[1] [2]generic-function-mandatory-keywordsgeneric-function-methods- getter methods
- getter name convention
- getters
- goals of the language
- grammar
- and macros
- extensibility of [1]
- LALR(1)
- graphic characters
- greater than comparitor
- greater than or equal to comparitor
H
handleras a reserved word- handlers [1] [2]
- established by let handler
- for restarts [1] [2]
- handling
- hash codes
- hash functions
- hash ids
- hash states [1] [2]
- hash tables
- See tables
headhead-setter- header files
- heads of lists
- hygiene in macros [1]
I
identity- IEEE floating point numbers [1]
if- immutability
- implicit
- definitions
- generic function parameter lists [1]
- generic functions
- importing
- improper lists
- incremental compilation
- indefinite element types
- indirect subclass relationship
- inequality
- infinite recursion
- See circular references
- inheritance [1]
- inherited slot specifications [1]
- init expressions of slots
- init functions of slots
- init specifications
- of class allocated slots
- of slots [1] [2]
- overriding in subclasses [1]
- used to initialize constant slots
- init values of slots
- init-keywords
- declaring required
- of slots [1] [2]
- providing default values for [1]
- restricting the types of [1]
- used to initialize constant slots
- initial value of a slot
- initialization arguments
- inheritance of [1]
- specification of [1]
- validity of
- initialization of instances [1] [2]
- initialization protocol [1] [2] [3]
initialize- used in the initialization protocol
- used to initialize virtual slots
- additional behavior of [1]
- initializing instances
- See initialization protocol
- inside stack
- instability under iteration
- instance creation
- See initialization protocol
- instance slot allocation [1] [2]
- 'instance variable,' as a synonym for 'slot'
instance?- in the type protocol
- of limited collection types [1]
- of union types
- instantiable classes
- instantiation, as part of the type protocol
<integer>- integers
- division of [1] [2]
- precision of
integral?- interchange format
- intermediate words in macros [1]
intersection- introspection
- iteration [1]
- collection alignment during [1]
- natural order of
- stability of
- statements supporting [1]
- using mapping functions
- using recursion
- iteration protocol [1] [2] [3]
J
K
- key tests of collections
key-sequencekey-test[1] [2] [3]- keys of collections [1] [2]
- keyword
- keyword arguments
- required format of
- See also duplicated keywords, keyword parameters
- keyword initializable
- keyword parameters [1] [2] [3]
- keywords
L
- LALR(1) grammar
language:, interchange format keywordlastlast-setterlcm- left-associativity of most operators
- less than comparitor
- less than or equal to comparitor
letlet handler[1] [2]- lexical notes
- lexical syntax [1]
- BNF of [1]
- liberality [1] [2] [3] [4]
- libraries [1]
- library export information
limited[1] [2]- limited collections [1] [2]
- limited integer types [1]
- limited types [1]
<list>list- list literal constants [1] [2] [3]
- lists [1]
- constructors for [1] [2]
- empty list
- literal constants [1]
local[1] [2]- local bindings [1] [2]
- local declarations
- as macro calls
- BNF of
- built-in [1]
- parsing of
- local methods [1] [2]
- local precedence order of superclasses
logandlogbit?- logical negation [1] [2]
- logical 'and'
- logical 'or'
logiorlognotlogxor- looping
- See iteration
M
- macro system [1]
macroas a reserved word- macro definitions
- macros
- and local bindings
- and module encapsulation [1]
- and the creation of reserved words
- arguments to
- as extensions to the core language
- assignment operator in
- auxiliary rule sets in [1]
begin…endbracketing in- binding-pattern matching in
- bracketed-pattern matching in
- calls to
- captured bindings in
- created by
define macro - definition macros [1]
- definitions of
- element reference syntax in
- examples of [1]
- expansion of [1] [2]
- exporting
- function macros [1]
- hygiene in [1]
- importing
- intentional hygiene violation in [1]
- intermediate words in [1]
- kinds of
- named value references in
- named value references to
- names of [1]
- parsed expression fragments in
- parsing and
- pattern variable constraints in [1]
- pattern variable matching in
- pattern-list matching in
- pattern-sequence matching in
- patterns in [1]
- processing of [1]
- property-list-pattern matching in
- reparsing of
- simple-pattern matching in
- special rules for definitions [1]
- special rules for function macros [1]
- special rules for statements [1]
- statement macros [1]
- templates in [1]
- temporary variables in
- that contain macros
make- in the initialization protocol
- in the type protocol
- used to create classes [1] [2]
- used to create generic functions [1] [2]
- additional behavior of [1]
- mandatory keywords
mapmap-asmap-intomaxmember?merge-hash-codes<method>[1] [2]method- sample definition of
- used to create bare methods [1] [2]
- method dispatch [1] [2]
- methods [1] [2]
- ambiguous [1] [2]
- applicable to a function call
- bare [1]
- BNF of
- built-in, manual notation of
- created by
define method - created by
local - explicitly known
- in generic functions [1]
- parameter lists of
- restrictions on defining
- sealed, manual notation of
- selecting [1]
- specializing
- specificity of [1]
- middle stack
min- module bindings
module:, interchange format keyword- modules [1]
modulo- multiple inheritance
- and primary classes
- and slot inheritance [1] [2]
- multiple values [1] [2] [3]
- mutability
- of collections [1]
<mutable-collection>[1] [2] [3]<mutable-explicit-key-collection><mutable-sequence>
N
- name character
- name-based exception systems
- named value references
- names
- BNF of
- conventions for
- escaping
- of macros [1]
- special treatment of [1]
- namespace of bindings, modules as
- natural order, of collection iteration
- negation, logical [1] [2]
negativenegative?- new value argument, returned by a setter
next-method[1]next-methodparameter- nonlocal exits [1] [2] [3] [4] [5]
- notation
- of built-in class reference [1]
- of built-in function reference [1]
- of the BNF
- of the manual
<number>- numbers, BNF of
- numeric
- characters
- classes, sealed
- literal constants [1] [2]
- operations, default implementations of
O
<object>- object-based exception system
object-classobject-hash<object-table>odd?- on-unit
- open classes [1] [2]
- open generic functions, manual notation of
- operand
- operations
- operator calls [1] [2]
- operators [1] [2]
- and token blending
- binding names of [1]
- BNF of
- order of execution of [1] [2]
- precedence of
- stripping special syntactic properties from names of
- optimization
- as an inappropriate use of macros
- See also sealing
- optional arguments
- optional initialization argument specifications [1]
- or, logical operator
- order of arguments and method dispatch
- order of collection iteration
- order of execution [1]
otherwiseas a reserved word- outside stack
- owned module bindings
P
<pair>pair- pairs
- as literal constants
- constructors for
- See also lists
- parallel binding
- parameter lists [1] [2] [3]
- congruency of [1]
- kinds of [1]
- of generic functions [1] [2]
- of methods
- parameters
- closed over
- kinds of [1]
- of methods
- specializing [1]
- parenthesized expressions
- parsed expression fragments
- parsing [1] [2]
- pattern matching
- pattern variables
- constraints of [1]
- in macros
- matching of
- pattern-lists, matching of
- pattern-sequences, matching of
- patterns
$permanent-hash-state- permited keywords
poppop-lastpositive?- precedence
- precision of integers
- predicate name convention
- primary classes [1] [2]
- program control [1]
- program structure [1] [2]
- proper lists
- proper subtypes
- properties
- property lists
- property-list-patterns, matching of
- protected regions [1] [2]
- pseudosubtypes [1]
- examples of [1]
- punctuation
pushpush-last
Q
- question mark
- in macros [1] [2]
- predicate name convention
R
- raise
<range>range- ranges, constructor for
rank<rational>rcurry- read-only bindings
- readability
<real>- recognized keywords
- recovery [1] [2] [3] [4]
- recursion
- recursive functions
- recursive methods [1]
reducereduce1- referential transparency
remainderremoveremove!remove-duplicatesremove-duplicates!remove-key![1] [2]remove-method- removing keys from a collection
- reparsing of macros
replace-elements!replace-subsequence!- require a fixed number of arguments
- required initialization argument specifications [1]
- required keyword [1] [2]
- required parameters
- required value declarations
required-init-keyword:- reserved words
- rest parameters
- rest value declarations
- rest-binding, used to receive multiple values
<restart>[1] [2]- restart handlers [1] [2]
restart-query- restarts [1]
- restrictions on method definitions
- return value declarations [1] [2]
- of getters and setters [1]
- return values of methods
return-allowedreturn-descriptionreturn-query- returning from exceptions [1] [2]
- returning multiple values
reversereverse!- rewrite rules [1]
- right-associativity of
:=and^ - root of the type hierarchy,
<object>as [1] [2] roundround/row-major-index
S
- sealed domains [1]
- abbreviations for [1]
- constraints implied by
- created by
define sealed domain - rationale for [1]
- sealed methods, manual notation of
sealed slotoption todefine class<sealed-object-error>- sealing [1]
- sealing directives
secondsecond-setterselect- send super
- See
next-method
- See
<sequence>[1] [2]- sequences
<serious-condition>- set operations [1]
- setter function shorthand syntax
- setter methods
- setter name convention
- setters
-settersuffix- shadowing macros
- shadowing names accidently
shallow-copysignal[1] [2] [3]- signal system
- signaler
- signaling unit
<simple-error><simple-object-vector>- simple-patterns, matching of
<simple-restart><simple-vector><simple-warning>- single inheritance and primary classes
<single-float>- single-line comments
<singleton>[1] [2]singleton- singleton syntax
- singletons [1]
sizesize-setter- slot access
- slot reference syntax [1] [2]
slot-initialized?[1] [2]- slots [1] [2]
- accessed through functions
- allocation of [1]
- constant [1]
- default names of
- duplication of
- efficiency of
- implicitly creating generic functions
- inheritance of [1] [2]
- init expressions of
- init functions of
- init values of
- initialization argument specifications of [1]
- initialization of class allocated [1]
- overriding
- sealed
- specialization of [1]
- specification of
- specifying with
define class - testing the initialization of [1] [2]
- using [1]
sortsort!sorted-applicable-methods- sorting applicable methods
- source code associated with a library
- source code format
- source records
- special definitions
- specializers
- specializing
- stability under iteration
- stack model [1]
- state of an iteration
- statement macros [1] [2] [3]
- statements [1] [2]
- static nature of definitions
<stretchy-collection>[1] [2]<stretchy-vector><string>- string literal constants [1] [2] [3]
- strings
- structure of Dylan programs [1]
- subroutines in macros
- See auxiliary rule sets
subsequence-positionsubtype?- defined for union types
- defining a partial ordering on types
- in the type protocol
- of limited collection types [1]
- subtypes, proper
- superclasses, specification of
- supplied initialization arguments
<symbol>- symbol literal constants [1] [2]
- symbols
- syntax
- BNF of [1]
- of function calls
- of the language [1]
T
<table>[1] [2]table-protocol[1] [2]- tables [1] [2]
tail- tail recursion
tail-setter- tails of lists
- templates [1]
thirdthird-setter- throw
- token blending
- See blending of tokens
- tokens
- top-level constituents
- top-level definitions
- total ordering, of classes in a class precedence list
- transfer of control [1] [2]
- See also exits, nonlocal exits
- transitivity, property of comparitors
- trichotomy, property of comparitors
- true and false
truncatetruncate/<type>- type protocol [1] [2]
- type restrictions
<type-error>type-error-expected-typetype-error-valuetype-for-copy[1] [2]type-union[1] [2]type:argument in initialization argument specifications- types [1]
- disjointness of [1]
- equality of
- equivalence of
- equivalence of, in method dispatch
- introspection on [1]
- limited collection types [1]
- limited types [1]
- naming convention for
- of keyword parameters [1]
- of return values
- overview of
- relationships among
- union types [1]
- unordered, in method dispatch
U
- unary operator calls
- Unicode character literal constants
<unicode-string>- uninstantiable classes
union- union types [1]
- unique strings
- as literal constants
- See also keywords
unlessuntil- used modules
- user-defined definition macros
- user-defined statement macros
V
- value declarations
- value types
values[1] [2]- variable bindings
- created by
define variable - naming convention for
- See also bindings
- created by
<vector>vector- vector literal constants [1] [2] [3] [4]
- vectors [1]
version:, interchange format keyword- virtual slot allocation [1] [2]
- virtual slot initialization
- visible bindings in a module
- visible modification
W
<warning>- warnings, as kinds of conditions
- whales
while- whitespace
- wildcard constraints [1]