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

11 The Built-In Classes

Numbers

Numbers

<number> [Open Abstract Class]


The class of all numbers.

Superclasses:
<object>

Init-keywords:
None.

Operations:
None.

Description:
The class of all numbers.

The class <number> is open, to allow programmers to create additional numeric classes. The built-in numeric operations do not provide default implementations for <number>, but for <complex>, a sealed subclass of <number>.

Complex Numbers

<complex> [Sealed Abstract Class]


The class of complex numbers.

Superclasses:
<number>

Init-keywords:
None.

Description:
The sealed superclass of all built-in numbers, including real numbers. There are no non-real subclasses of <complex> defined by the language, but implementations may define such subclasses. Because <complex> and all its defined subclasses are sealed, implementation-defined subclasses may be added efficiently.

Many built-in functions are defined to have methods on <complex>. This means that the function is defined on all built-in subclasses of <complex>. It does not imply that there is a single method specialized on the <complex> class.

Operations:
Methods on <complex> (continued)
Function DescriptionPage
= Compares two objects for equality.254
zero? Tests for the property of being equal to zero.260
+ Returns the sum of its arguments.262
* Returns the product of its arguments.263
- Returns the difference of its arguments.263
/ Returns the quotient of its arguments.263
^ Raises an object to a specified power.268
abs Returns the absolute value of its argument.269
The class <complex> provides implementations for the following functions:

Reals

<real> [Sealed Abstract Class]


The class of real numbers.

Superclasses:
<complex>

Init-keywords:
None.

Description:
The class of real numbers.

Operations:
The class <real> provides implementations for the following functions:
Functions on <real> (continued)
Function DescriptionPage
floor Truncates a real number towards negative infinity.264
ceiling Truncates a real number towards positive infinity.265
round Rounds a real number towards the nearest mathematical integer.265
truncate Truncates a real number towards zero.266
floor/ Returns the floor of the quotient of two numbers.266
ceiling/ Returns the ceiling of the quotient of two numbers.266
round/ Rounds off the quotient of two numbers.267
truncate/ Returns the truncated quotient of two numbers.267
modulo Returns the second value of floor/.268
remainder Returns the second value of truncate/.268
Methods on <real> (continued)
Function DescriptionPage
< Returns true if its first operand is less than its second operand.256
positive? Tests for the property of being positive.261
negative? Tests for the property of being negative.261
integral? Tests for the property of being integral.261
negative Returns the negation of an object.264

Floats

The classes <single-float> and <double-float> are intended but not required to be the corresponding IEEE types. The class <extended-float> is intended but not required to have more range and/or precision than <double-float>.

If an implementation has fewer than three floating point classes, the names <single-float>, <double-float> and <extended-float> may all refer to the same object.

<float> [Sealed Abstract Class]


The class of floating-point numbers.

Superclasses:
<real>

Init-keywords:
None.

Description:
The class of all floating-point numbers. This class is abstract. All floating point numbers will be instances of some concrete subclass of this class.

Operations:
None.

<single-float> [Sealed Class]


The class of single-precision floating-point numbers.

Superclasses:
<float>

Init-keywords:
None.

Description:
The class of single-precision floating-point numbers. This class is intended but not required to correspond to IEEE single-precision.

Operations:
None.

<double-float> [Sealed Class]


The class of double-precision floating-point numbers.

Superclasses:
<float>

Init-keywords:
None.

Description:
The class of double-precision floating-point numbers. This class is intended but not required to correspond to IEEE double-precision.

Operations:
None.

<extended-float> [Sealed Class]


The class of extended-precision floating-point numbers.

Superclasses:
<float>

Init-keywords:
None.

Description:
The class of extended-precision floating-point numbers. This class is intended but not required to provide more precision that <double-float>.

Operations:
None.

Rationals

<rational> [Sealed Abstract Class]


The class of rational numbers.

Superclasses:
<real>

Init-keywords:
None.

Description:
The class of rational numbers.

Operations:
None.

Integers

<integer> [Sealed Class]


The class of integers.

Superclasses:
<rational>

Init-keywords:
None.

Description:
The class of integers.

Implementations are required to support integers with at least 28 bits of precision. The overflow and underflow behavior is implementation-defined. (Some implementations may choose to have integers of unlimited size, but this is not required.)

The result of dividing two integers with / is implementation defined. Portable programs should use floor/, ceiling/, round/, or truncate/ to divide two integers.

Operations:
The class <integer> provides the following operations:
Functions on <integer> (continued)
Function DescriptionPage
odd? Tests for the property of being an odd number.260
even? Tests for the property of being an even number.260
logior Returns the bitwise inclusive or of its integer arguments.269
logxor Returns the bitwise exclusive or of its integer arguments.269
logand Returns the bitwise and of its integer arguments.270
lognot Returns the bitwise not of its integer argument.270
logbit? Tests the value of a particular bit in its integer argument.270
ash Performs an arithmetic shift on its first argument.271
lcm Returns the least common multiple of two integers.271
gcd Returns the greatest common divisor of two integers.272
Methods on singleton(<integer>) (continued)
Function DescriptionPage
limited Returns a limited subtype of a class.249


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

Generated with Harlequin WebMaker