Chapter 12

The Built-In Functions


Arithmetic Operations

When instances of <rational> and instances of <float> are combined by a numerical function, the instance of <rational> is first converted to an instance of <float> of the same format as the original instance of <float>.

Properties

odd? [Function]


Tests for the property of being an odd number.

Signature:

odd? integer boolean

Arguments:
integer

An instance of <integer>.

Values:
boolean

An instance of <boolean>.

Description:

Returns true if its argument is an odd number.

even? [Function]


Tests for the property of being an even number.

Signature:

even? integer boolean

Arguments:
integer

An instance of <integer>.

Values:
boolean

An instance of <boolean>.

Description:

Returns true if its argument is an even number.

zero? [Open Generic Function]


Tests for the property of being equal to zero.

Signature:

zero? object boolean

Arguments:
object

An instance of <object>.

Values:
boolean

An instance of <boolean>.

Description:

Returns true if its argument is equal to zero.

zero? complex boolean [Sealed G.F. Method]

A method is defined for the class <complex>.

positive? [Open Generic Function]


Tests for the property of being positive.

Signature:

positive? object boolean

Arguments:
object

An instance of <object>.

Values:
boolean

An instance of <boolean>.

Description:

Returns true if its argument is positive.

positive? real boolean [Sealed G.F. Method]

A method is defined for the class <real>.

negative? [Open Generic Function]


Tests for the property of being negative.

Signature:

negative? object boolean

Arguments:
object

An instance of <object>.

Values:
boolean

An instance of <boolean>.

Description:

Returns true if its argument is negative.

negative? real boolean [Sealed G.F. Method]

A method is defined for the class <real>.

integral? [Open Generic Function]


Tests for the property of being integral.

Signature:

integral? object boolean

Arguments:
object

An instance of <object>.

Values:
boolean

An instance of <boolean>.

Description:

Returns true if its argument is an integer.

integral? object false [G.F. Method]

A method is defined for the class <object> that returns #f.

integral? real boolean [Sealed G.F. Method]

A method is defined for real numbers that is equivalent to real = round(real).

Arithmetic Operations

+ [Open Generic Function]


Returns the sum of its arguments.

Signature:

object1 + object2 #rest objects

Arguments:
object1

An instance of <object>.

object2

An instance of <object>.

Values:
objects

Instances of <object>.

Description:

Adds two objects and returns the sum.

complex1 + complex2 complex [Sealed G.F. Method]

A predefined method returns the sum of two complex numbers.

* [Open Generic Function]


Returns the product of its arguments.

Signature:

object1 * object2 #rest objects

Arguments:
object1

An instance of <object>.

object2

An instance of <object>.

Values:
objects

Instances of <object>.

Description:

Multiplies two objects and returns the product.

complex1 * complex2 complex [Sealed G.F. Method]

A predefined method returns the product of two complex numbers.

- [Open Generic Function]


Returns the difference of its arguments.

Signature:

object1 - object2 #rest objects

Arguments:
object1

An instance of <object>.

object2

An instance of <object>.

Values:
objects

Instances of <object>.

Description:

Subtracts object2 from object1 and returns the difference.

complex1 - complex2 complex [Sealed G.F. Method]

A predefined method returns the difference of two complex numbers.

/ [Open Generic Function]


Returns the quotient of its arguments.

Signature:

object1 / object2 #rest objects

Arguments:
object1

An instance of <object>.

object2

An instance of <object>.

Values:
objects

Instances of <object>.

Description:

Divides object2 into object1 and returns the quotient.

complex1 / complex2 complex [Sealed G.F. Method]

A predefined method returns the quotient of two complex numbers.

Division by zero signals an error.

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

negative [Open Generic Function]


Returns the negation of an object.

Signature:

negative object1 #rest objects

Arguments:
object1

An instance of <object>.

Values:
objects

Instances of <object>.

Description:

Returns the negation of its argument. The unary minus operator is equivalent to a call to the negative in the current binding environment.

negative real1 real2 [Sealed G.F. Method]

A predefined method returns the additive inverse of a real number.

floor [Function]


Truncates a real number toward negative infinity.

Signature:

floor real1 integer real2

Arguments:
real1

An instance of <real>.

Values:
integer

An instance of <integer>.

real2

An instance of <real>.

Description:

Truncates real1 toward negative infinity. The integer part is returned as integer, the remainder is returned as real2.

ceiling [Function]


Truncates a real number toward positive infinity.

Signature:

ceiling real1 integer real2

Arguments:
real1

An instance of <real>.

Values:
integer

An instance of <integer>.

real2

An instance of <real>.

Description:

Truncates real1 toward positive infinity. The integer part is returned as integer, the remainder is returned as real2.

round [Function]


Rounds a real number toward the nearest mathematical integer.

Signature:

round real1 integer real2

Arguments:
real1

An instance of <real>.

Values:
integer

An instance of <integer>.

real2

An instance of <real>.

Description:

Rounds real1 toward the nearest mathematical integer. The integer part is returned as integer, the remainder is returned as real2. If real1 is exactly between two integers, then the result integer will be a multiple of two.

truncate [Function]


Truncates a real number toward zero.

Signature:

truncate real1 integer real2

Arguments:
real1

An instance of <real>.

Values:
integer

An instance of <integer>.

real2

An instance of <real>.

Description:

Truncates real1 toward zero. The integer part is returned as integer, the remainder is returned as real2.

floor/ [Function]


Returns the floor of the quotient of two numbers.

Signature:

floor/ real1 real2 integer real3

Arguments:
real1

An instance of <real>.

real2

An instance of <real>.

Values:
integer

An instance of <integer>.

real3

An instance of <real>.

Description:

Divides real2 into real1 and truncates the result toward negative infinity. The integer part of the result is returned as integer, the remainder is returned as real3.

ceiling/ [Function]


Returns the ceiling of the quotient of two numbers.

Signature:

ceiling/ real1 real2 integer real3

Arguments:
real1

An instance of <real>.

real2

An instance of <real>.

Values:
integer

An instance of <integer>.

real3

An instance of <real>.

Description:

Divides real2 into real1 and truncates the result toward positive infinity. The integer part of the result is returned as integer, the remainder is returned as real3.

round/ [Function]


Rounds off the quotient of two numbers.

Signature:

round/ real1 real2 integer real3

Arguments:
real1

An instance of <real>.

real2

An instance of <real>.

Values:
integer

An instance of <integer>.

real3

An instance of <real>.

Description:

Divides real2 into real1 and rounds the result toward the nearest mathematical integer. The integer part of the result is returned as integer, the remainder is returned as real3. If the result of the division is exactly between two integers, then the result integer will be a multiple of two.

truncate/ [Function]


Returns the truncated quotient of two numbers.

Signature:

truncate/ real1 real2 integer real3

Arguments:
real1

An instance of <real>.

real2

An instance of <real>.

Values:
integer

An instance of <integer>.

real3

An instance of <real>.

Description:

Divides real2 into real1 and truncates the result toward zero. The integer part of the result is returned as integer, the remainder is returned as real3.

modulo [Function]


Returns the second value of floor/.

Signature:

modulo real1 real2 real3

Arguments:
real1

An instance of <real>.

real2

An instance of <real>.

Values:
real3

An instance of <real>.

Description:

Returns the second value of floor/(real1, real2).

remainder [Function]


Returns the second value of truncate/.

Signature:

remainder real1 real2 real3

Arguments:
real1

An instance of <real>.

real2

An instance of <real>.

Values:
real3

An instance of <real>.

Description:

Returns the second value of truncate/(real1, real2).

^ [Open Generic Function]


Raises an object to a specified power.

Signature:

object1 ^ object2 #rest objects

Arguments:
object1

An instance of <object>.

object2

An instance of <object>.

Values:
objects

Instances of <object>.

Description:

Returns object1 raised to the power object2. An error is signaled if both arguments are zero.

complex ^ integer number [Sealed G.F. Method]

A predefined method raises a complex number to an integral power and returns the result.

abs [Open Generic Function]


Returns the absolute value of its argument.

Signature:

abs object1 #rest objects

Arguments:
object1

An instance of <object>.

Values:
objects

Instances of <object>.

Description:

Returns the absolute value of object1.

abs complex real [Sealed G.F. Method]

A predefined method returns the absolute value of a complex number.

logior [Function]


Returns the bitwise inclusive or of its integer arguments.

Signature:

logior #rest integers integer

Arguments:
integers

Zero or more instances of <integer>.

Values:
integer

An instance of <integer>.

Description:

Returns the bitwise inclusive or of the integers.

logxor [Function]


Returns the bitwise exclusive or of its integer arguments.

Signature:

logxor #rest integers integer

Arguments:
integers

Zero or more instances of <integer>.

Values:
integer

An instance of <integer>.

Description:

Returns the bitwise exclusive or of the integers.

logand [Function]


Returns the bitwise and of its integer arguments.

Signature:

logand #rest integers integer

Arguments:
integers

Zero or more instances of <integer>.

Values:
integer

An instance of <integer>.

Description:

Returns the bitwise and of the integers.

lognot [Function]


Returns the bitwise not of its integer argument.

Signature:

lognot integer1 integer2

Arguments:
integer1

An instance of <integer>.

Values:
integer2

An instance of <integer>.

Description:

Returns the bitwise not of the integer1.

logbit? [Function]


Tests the value of a particular bit in its integer argument.

Signature:

logbit? index integer boolean

Arguments:
index

An instance of <integer>.

integer

An instance of <integer>.

Values:
boolean

An instance of <boolean>.

Description:

Returns true if the indexth bit in integer is a one-bit; otherwise it returns false.

Negative integers are treated as if they were in two's-complement notation.

ash [Function]


Performs an arithmetic shift on its first argument.

Signature:

ash integer1 count integer2

Arguments:
integer1

An instance of <integer>.

count

An instance of <integer>.

Values:
integer2

An instance of <integer>.

Description:

Performs an arithmetic shift on the binary representation of integer1.

ash shifts integer1 arithmetically left by count bit positions if count is positive, or right count bit positions if count is negative. The shifted value of the same sign as integer1 is returned.

When ash moves bits to the left, it adds zero-bits at the right. When it moves them to the right, it discards bits.

ash is defined to behave as if integer1 were represented in two's complement form, regardless of how integers are represented by the implementation.

ash(8, 1)
  ⇒  16
ash(32, -1)
  ⇒  16

lcm [Open Generic Function]


Returns the least common multiple of its two arguments.

Signature:

lcm object1 object2 object3

Arguments:
object1

An instance of <object>.

object2

An instance of <object>.

Values:
object3

An instance of <object>.

Description:

Returns the least common multiple of object1 and object2.

lcm integer1 integer2 integer3 [Sealed G.F. Method]

A predefined method returns the least common multiple of two integers.

gcd [Open Generic Function]


Returns the greatest common divisor of its two arguments.

Signature:

gcd object1 object2 object3

Arguments:
object1

An instance of <object>.

object2

An instance of <object>.

Values:
object3

An instance of <object>.

Description:

Returns the greatest common divisor of object1 and object2.

gcd integer1 integer2 integer3 [Sealed G.F. Method]

A predefined method returns the greatest common divisor of two integers.