[Next] [Previous] [Top] [Contents] [Index]

Dylan Reference Manual


abstract class

A class that is not intended to have direct instances. The opposite of an abstract class is a concrete class.


1. (a slot) To retrieve (get) or replace (set) the value of the slot. 2. (a collection element) To retrieve or replace the collection element.


A slot accessor (a getter or setter).


(from a module) A binding that is either owned by the module or imported into the module from another module.

ambiguous methods

(for a particular function call) Two methods that are both applicable for the function call, but neither of which is more specific than the other.


1. (~ method) Created by a method statement, as opposed to having been created and named by a define method or local definition, or having been implicitly defined. Compare with bare method. 2. (~ class) Created by calling the make function on the class <class>, as opposed to having been created and named by a define class definition. 3. (~ generic function) Created by calling the make function on the class <generic-function>, as opposed to having been created and named by a define generic definition.


1. (~ method, during a generic function call) Having a parameter list which matches the supplied arguments. 2. (~ handler, when a condition is signaled) Matching the signaled condition by type and by an optional test function associated with the handler.


1. (a function to arguments) To call the function with the arguments. 2. The function apply (see page 337).


An object that is supplied to a function in a function call. In other languages, this is sometimes called an "actual argument" or "actual parameter."


An instance of <array>.


1. (a variable) To change the value of the variable. 2. (a slot) To set the value of the slot. 3. (a collection element) To change the value of a collection element.

bare method

1. A method which is not part of a generic function. 2. A method which is used directly, as though it is not part of a generic function.

base type

(of a type): Every type has a base type. The base type for a class is the class itself. The base type of a singleton is the singleton itself. The base type of a union is the union of the base types of its component types. The base type of a limited type limited(C, ...) is C.


(a variable) To establish a binding.


An association between a name and a value.


A grammatical element of a Dylan program, consisting of zero or more constituents. If any of the constituents are expressions, the body returns the values of the last expression.


(~ name) Having a binding which associates the namewith a value.


(a function) To invoke a function on a set of arguments. If the function is a generic function, it will dispatch to an appropriate method. If the function is a method, it will cause the body of the method to be executed within an environment in which the parameters of the function are bound to the arguments.

circular list

A list that has no last element, because the tail of every pair in the list is another pair in the list. Compare with improper list, dotted list.


1. A type that specifies the structure of instance and categorizes objects. Each Dylan object is a direct instance of exactly one class. 2. (of an object) The class of which the object is a direct instance.

class hierarchy

A directed acyclic graph (DAG) which describes the subclass/superclass relationships among classes. Each node represents a class, the children of a node represent the direct subclasses of a class, and the parents of a node represent the direct superclasses of a class.

class precedence list

(of a class) A total ordering on the class and its superclasses that is consistent with the local precedence orders for the class and each of its superclasses. The class precedence list is used in determining method specificity.

cleanup clause

A clause in a block statement that is guaranteed to be executed, even if the execution of the block statement is terminated by a non-local exit.


(an object to a type) To produce a new object of the specified type, without modifying the original object. The intent is to produce an object that preserves the meaning of the original object, but is an instance of the specified type.


An aggregate data structure such as a list, a table, or an array. A collection is an instance of <collection>.

collection alignment

A technique of preparing two or more collections for an iteration over those collections, ensuring that elements are paired in a consistent way.

collection key

(of a collection) An object that can be passed to random-access operations (such as element or element-setter) to access an element of the collection.

concrete class

A class that is intended to have direct instances. The opposite of a concrete class is an abstract class.


An object that is signaled in an exceptional situation, and used to determine which handlers are applicable in the situation. Conditions are instances of <condition>.


(two or more ~ parameter lists) Having compatible parameters. The parameter lists of a generic function and its methods must be congruent. See "Parameter List Congruency" on page 91.


1. A constant binding. 2. A literal constant. 3. (~ binding) Read-only. 4. (~ slot) Not assignable. Constant slots do not have setter functions.

constant binding

A binding which cannot be assigned a new value.


1. (of a collection) The elements of the collection. 2. (of an object) The values stored in the object's slots.


1. (of an object) A new object that has similar structure and contents as the original object. A copy may be an instance of the same class as the original object, or it may be an instance of the type-for-copy of the object. A copy may or may not share structure with the original object. Compare fresh copy, shallow copy. 2. (an object) To create a copy of the object.

default method

(of a generic function) The method with the most general parameter specializers for the generic function, intended for use when no more specific method is defined.


A syntax form that denotes a declarative part of a program. Definitions are restricted to be top level expressions, and do not return values.


(~ function) Capable of modifying its arguments.

direct instance

(of a class C) An object whose class is C itself, rather than some subclass of C.

direct subclass

(of a class C1) A class C2 such that C1 is a direct superclass of C2.

direct superclass

(of a class C1) A class C2 that is listed as a superclass of C1 in the definition of C1, or that was passed as one of the superclass: arguments to make when C1 was created.


(of types): Informally, two types are disjoint if there can be no object that is an instance of both types. A formal definition is given in "Type Disjointness" on page 49.

dotted list

A list that has something other than the empty list as the tail of its last pair. Compare proper list, improper list.

Dylan source code file

A file containing Dylan code in the standard portable file format as described in"Dylan Interchange Format" on page 21.


(of a collection) An object that is stored in the collection. It can be identified by a collection key.

element reference syntax

The shorthand syntax for accessing an element of an array or of any other collection. x[y], x[y, z]

empty list

The list that contains no elements. It is the unique instance of the class <empty-list>.


1. A set of bindings. 2. The set of bindings that are available to a particular part of a program.

equivalence class

(for an equivalence predicate) A set of objects, or potential objects, that are all the same under the specified equivalence predicate and different under that predicate from all objects not in the equivalence class.

equivalence predicate

A boolean function of two arguments that returns true if and only if the arguments are "the same" according to some specified criteria. For a function to be used as an equivalence predicate, it must be reflexive, commutative, and transitive. See also hash function.

equivalent types

Two types, each of which is a subtype of the other.


1. A condition which represents an error situation. 2. An error situation.

error situation

A situation in which there is something invalid about the program, in contrast to an environmental condition such as running out of memory or battery power, or inability to establish a network connection.

exceptional situation

A situation that is not conceptually part of the normal execution of the program, but must be handled some other way. Exceptional situations are represented by conditions.

exit procedure

A function that can be called explicitly, during the execution of a block statement, to terminate the execution of the block statement, transfer control to its associated exit point, and return zero or more values.

exit point

A point through which control may be transferred. An exit point established by a block statement may have an associated exit procedure.

explicit definition

A definition created by define constant, define variable, define generic, define macro and the class name in define class. See also implicit definition.

explicitly defined

(of a class or generic function) defined by an explicit definition.

explicitly known

1. (of a class in a library) a class defined by define class in the library or in one of the libraries it uses. 2. (of a generic function in a library) a generic function explicitly defined by define generic in the library or in one of the libraries it uses, or a generic function implicitly defined by the definition of a method explicitly known in the library or by a slot specification for a class explicitly known in the library. 3. (of a method in a library) a method defined by define method in the library or in one of the libraries it uses, or defined by a slot specification for a class explicitly known in the library.

exported binding

(from a module) A binding that is explicitly exported from the module. Exported bindings are available to be imported by other modules that use the module. Unexported bindings are not available to other modules.


A section of program code that represents a value, or the computation of a value. An expression may be part of a larger expression, and it may itself have subexpressions.


The unique false object, #f.

first-class object

An object. The adjective "first-class" is used to emphasize that the object may be stored in a variable or data structure, may be passed as an argument to a function, and may be returned as the value of a function.

free class

A class that may be used freely in multiple inheritance. The opposite of a free class is a primary class.


A collection C is fresh if modification of any pre-existing collection's contents can never modify the contents of C and if modifications to C can never modify the contents of any pre-existing collection. Immutable collections cannot be modified, so a fresh immutable collection can share structure with other immutable collections.

fresh copy

A copy that does not share structure. Compare with shallow copy.

freshly allocated

See fresh.


An object used for performing actions and returning values. Functions have a parameter list and an optional return value specification, which together define the function's signature. There are two kinds of functions: methods and generic functions. A method has a body of code which is executed to compute the method's values when the method is called. A generic function consists of a setof methods, and computes its values by selecting and calling an appropriate method based on the types of the arguments.

general instance

(of a type) An object that is either a direct instance or indirect instance of the type.

general superclass

(of a class) A class that is either a direct superclass or indirect superclass of the class.

generic function

A function consisting of a family of methods with a common calling protocol. A generic function computes its value by selecting and calling an appropriate method based on the types of the arguments. See also method dispatch.

generic function dispatch

See method dispatch.


(the value of a slot) To retrieve the value of the slot.


A function that is applied to an object and returns the value of one of the object's slots.


A function that is used to respond to a signaled condition.

hash code

A conceptual object consisting of a hash id and its associated hash state.

hash function

A function, associated with a table, that computes hash code. All hash functions have one argument, a key, and return two values, a hash id and a hash state, which together represent the hash code. See also equivalence predicate.

hash id

An integer encoding of an object.

hash table

A table.

hash state

An object of implementation-dependent type which is associated with a particular hash id and can be used by the implementation to determine whether the hash id has been invalidated.


(of two objects) Computationally equivalent. That is, there is no way for any portable Dylan program to distinguish them; they are the same under the equivalence predicate ==.


Not capable of being modified after it is created. It is an error to attempt to modify an immutable object, though Dylan implementations are not required to detect this error. The opposite of immutable is mutable.

implicit definition

A definition created by define method or by the slot specifications of define class.

implicitly defined

1. (of a generic function) Created by an implicit definition rather than by define generic. 2. (of a method) Created by a slot specification in a define class definition, rather than by define method.

imported binding

A binding imported from a used module. A binding owned by another module must be imported in order to be visible to code inside the module.

improper list

A list that does not have the empty list as the tail of its last pair. An improper list is either a dotted list or a circular list.

indirect instance

(of a type) A direct instance of one of the proper subclasses of the type.

indirect superclass

(of a class) A class that is a general superclass of one of the class's direct superclasses.

infix operator

The name of a function or macro that is normally called using infix notation. Infix operators must be prefixed by the infix operator escape character ("\") in order to be used in any way other than as the operator in an infix function call.

init keyword

A keyword specified in a class definition, used to initialize a slot. An init keyword may be required or optional.

init specification

An init specification provides an initial value for the slot or a default value for an init-keyword. There are three kinds of init specifications. See page 58 for a complete description.

initialization argument

A keyword argument supplied to make, used to initialize an keyword initializable slot.


1. (an object) To prepare an object for use, by initializing its slots and calling the initialize function on the object. All Dylan objects are automatically initialized immediately after they are allocated. 2. (a slot) To give the slot its initial value. A program can test to see whether a slot has been initialized by calling the function slot-initialized? There is no mechanism for resetting a slot to the uninitialized state. 3. (a variable) To bind the variable to its initial value.


(of a type) A general instance of the type.

instantiable class

A class that can be used as the first argument to make. The opposite of an instantiable class is an uninstantiable class. Note that an abstract class may be instantiable.

iteration protocol

A protocol that is common to collections, consisting of the functions forward-iteration-protocol and backward-iteration-protocol. All collections must implement forward-iteration-protocol. Some collections that are stable under iteration also implement backward-iteration-protocol.

iteration stability

The property of being stable under iteration.

iteration binding

A binding associated with a clause in a for statement. Each iteration binding is associated with only one clause.

keyword argument list

A sequence containing an even number of elements that are alternating keywords and values (i.e. a sequence of keyword/value pairs). When there is more than one keyword/value pair with the same keyword, the first such pair determines the value associated with that keyword in the keyword argument list.

keyword initializable

(of a slot) A slot that may be given an initial value by a keyword argument in a call to make. See also initialization arguments.

keyword parameter

(of a function) A parameter that corresponds to an optional keyword/value pair. Keyword parameters are specified by name rather than position.

keyword/value pair

Two successive arguments (a keyword and a value, respectively) supplied in a function call.


A set of modules and code, which is available for use by Dylan programs. Libraries are the unit of compilation, sealing, and optimization.

literal constant

An object that is specified explicitly in program text. Literal constants are immutable.

local precedence order

(of a class and its direct superclasses) An ordering of classes, including the class and its direct superclasses, in which the class precedes its direct superclasses, and each direct superclass precedes all other direct superclasses that follow it in the definition of the class.

local scope

A scope that includes a limited section of program text.

local binding

A binding created by a local declaration. Local bindings are visible within the remainder of the smallest enclosing body containing the declaration which creates the bindings.

mandatory keyword

(of a generic function) A keyword that must be recognized by all of the methods of that generic function. Mandatory keywords are specified in the generic function's parameter list, after #key or as the key: initialization argument to make of <generic-function>.


A basic callable unit of code. It includes a parameter list, a return value specification and a body.

method dispatch

The process of determining which method to call when a generic function is applied to arguments.


A namespace of bindings.

module binding

A binding that can be referenced from any code associated a particular module.

most specific method

The method whose specializers most closely match the arguments of a function call. A method specialized on a subclass is more specific than a method specialized on superclasses.


A method that has more than one specialized parameter.

multiple inheritance

Inheritance from more than one direct superclass. See also single inheritance.

multiple values

Zero or more values returned by an expression. Used in contrast to one value, as in "this function returns multiple values."


Capable of being modified after it is created. The opposite of mutable is mutable.

named value reference

An expression which is a reference to a binding.

natural order

The order in which elements of a collection are traversed by the iteration protocol for a particular iteration. If a collection is stable under iteration, every iteration over the collection has the same natural order, which defines a natural order for the collection itself.

next method

(during a generic function call) The method that is next most specific, after the method that is currently executing, in the sequence of applicable methods for that generic function call.

next-method parameter

A parameter, usually called next-method. The value of the next-method parameter is automatically supplied by the generic function dispatch mechanism. It is either #f (if there is no next method) or a function that calls the next method after defaulting any unsupplied arguments. There is no way for a user to specify a different next method.

non-local exit

A transfer of control, through an exit point, out of a local region of code, that terminates the normal execution of that code and the normal return of values.

normal exit

Completing execution and returning without taking a non-local exit.


A unit of data in a Dylan program. Objects are instances of classes, may be stored in variables, slots, and collections, may be passed as arguments to functions, and may be returned as values of functions. In Dylan, functions and classes are themselves objects.

open class

A class that may have subclasses that are not explicitly defined in the same library. The opposite of an open class is a sealed class.

open generic function

A generic function that may have methods that are not explicitly defined in the same library. The opposite of an open generic function is a sealed generic function.


(of a binding, by a module) Created by a create clause in the module's define module definition, or by a definition associated with the module.


An instance of <pair>.


(of a function) A variable that is declared in the parameter list of a function and specifies part of the function's calling protocol. Parameters are lexically bound within the function body, and are bound to their initial values when the function is called. Dylan supports required parameters, rest parameters, keyword parameters, and next-method parameters.

parameter list

The part of a function definition that specifies the function's calling protocol. See also signature.

predicate function

A function that returns a true or false value. The names of predicate functions, by convention, end in a question mark.

primary class

A class that may be used only as the primary superclass in multiple inheritance. A class may not have two primary superclasses unless one is a subclass of the other. The opposite of a primary class is a free class.

proper list

A list that has the empty list as the tail of its last pair.

proper subclass

(of a class) A class which is a subclass of the class, but is not identical to the class.

proper subtype

(of a type) A type which is a subtype of the type, but is not equivalent to the type. See also equivalent types.


1. (of a class) The methods that all subclasses of the class either implement or inherit. 2. (of a function, esp. a generic function) The signature of the function.


Arelation between types. The type T1 is a pseudosubtype of the type T2 if T1 is a subtype of the base type of T2 and T1 and T2 are not disjoint.

required parameter

(of a function) A parameter that corresponds to an argument that must be supplied when the function is called. Required parameters are specified in a fixed order before other parameters, and their corresponding arguments must be supplied in the same order. Required parameters may be specialized or unspecialized. Compare rest parameter, keyword parameter, and next-method parameter.

rest parameter

(of a function) A parameter that allows a function to accept a variable number of arguments following those that correspond to the required parameters. The additional arguments are stored in a sequence.

return value specification

An optional part of a function definition that specifies the number and types of the values returned by the function. See also signature.

sealed class

A class that cannot have direct subclasses other than those explicitly defined in the same library. The opposite of a sealed class is an open class.

sealed generic function

A generic function that cannot have methods that are not explicitly defined in the same library. The opposite of a sealed generic function is an open generic function.


An instance of <sequence>, a type of collection which uses successive non-negative integers as keys.


(the value of a slot) To replace the value of the slot with a new value.


A function used to set the value of a slot. By convention, the name of a setter is the name of the getter concatenated with the suffix -setter.


(a binding) To hide the binding within a portion of program text, by creating a new local binding with the same name.

shallow copy

(of an object) A new object that has the same contents as the object. The contents are not copied, but are the same objects contained in the original object.


(of a function) The parameter list and return value specification of the function.

single inheritance

Inheritance from only one direct superclass. See also multiple inheritance.


A type used to indicate an individual object. A singleton has only one instance.


A unit of local storage available within an instance or a class, which is used to store state in the instance or class.

slot accessor

A getter or setter.


1. (a variable) To restrict the variable to values that are general instances of a particular type. 2. (a generic function) To define a method for the generic function that is applicable only to instances of a particular type or types. 3. (a method) To specify the types of the parameters of the method.


A type, especially when it is used to specialize a parameter, variable, or slot.

stable under iteration

(of a collection) The proprty of a collection that any two iterations over the collection are guaranteed to produce the same values in the same order (unless, of course, the collection has been modified). See also natural order and sequence.

stretchy collection

A collection that may grow or shrink to accomodate adding or removing elements.


An object, also known as a hashtable, that maps arbitrary keys to objects. Each table has an associated equivalence predicate which is used to compare keys. The table maps keys that are equivalent under the predicate to the same table element.


1. The canonical true value, #t. 2. Any object other than the unique false value, #f.


A Dylan object that categorizes objects. See "Overview" on page 47.

type equivalent

See equivalent types.


(of an object) An instantiable type suitable for making copies of an object. Instances of the type-for-copy must be mutable.

unbounded sequence

A sequence that is infinite or circular.

uninstantiable class

A class that cannot be used as the first argument to make. The opposite of an uninstantiable class is an instantiable class.

visible modification

(with respect to an equivalence predicate) A modification that changes the equivalence class of the object. The modifications that are visible to an equivalence predicate are determined by the definition of the predicate.

white space

Any number of contiguous space, tab, newline, and newpage characters. The amount of contiguous white space is not significant in program code.

Dylan Reference Manual - 17 OCT 1995
[Next] [Previous] [Top] [Contents] [Index]

Generated with Harlequin WebMaker