Chapter 12
The Built-In Functions
Overview
This chapter contains an entry for each function defined by Dylan.
The functions described below are annotated either as
an open generic function
or as a function.
A function specified as an open generic function
can be
extended through the addition of programmer defined methods. The signature of the generic
function constrains which methods can be added through the congruency rules described
on page 93. The signature does not imply a set
of predefined methods. For example, the signature
of +
is (<object>, <object>)
, but the predefined
methods on +
only cover subtypes of <number>
. Particular
behavior of the function is given in its description and in the description of its
methods.
A function specified as a function
cannot portably be
extended through the addition of methods. Implementations are free to implement these
functions as open generic functions, but programs that take advantage of
such liberality will not be portable. The signature of such a
function specifies the types of the arguments to which the function may be applicable, but
does not necessarily imply that the function is applicable to all instances of the
types. The exact behavior of the function is given in its description.
Implementations are allowed to define these generic functions and functions with signatures that are less restrictive than those given below. However, programs that take advantage of this liberality will not be portable.
When a method is specified, it describes the behavior of a generic function when applied to
arguments of particular types. It does not imply that this behavior is implemented by a
single method. A method described as sealed
specifies a
sealed domain covering the generic function and specializers of the method.
Where a sealed domain is specified, implementations are free to seal the domain or leave the domain unsealed. Portable programs should not rely on the domain being unsealed.