+, * These procedures return the sum or product of their arguments.

+, * These procedures return the sum or product of their arguments.

-, / With two or more arguments, these procedures return the difference or quotient of their arguments, associating to the left. With one argument, however, they return the additive or multiplicative inverse of their argument. It is an error if any argument of / other than the first is an exact zero. If the first argument is an exact zero, an implementation may return an exact zero unless one of the other arguments is a NaN.

=, <, >, <=, >= These procedures return #t if their arguments are (respectively): equal, monotonically increasing, monotonically decreasing, monotonically non-decreasing, or monotonically non-increasing, and #f otherwise. If any of the arguments are +nan.0, all the predicates return #f. They do not distinguish between inexact zero and inexact negative zero. These predicates are transitive. Note: While it is not an error to compare inexact numbers using these predicates, the results are unreliable because a small inaccuracy can affect the result; this is especially true of = and zero?. When in doubt, consult a numerical analyst.

(
<=?
[
comparator?
comparator
]
object1
object2
object3
...
)
⟹
boolean?

=?, <?, >?, <=?, >=? These procedures are analogous to the number, character, and string comparison predicates of Scheme. They allow the convenient use of comparators to handle variable data types.
These procedures apply the equality and ordering predicates of comparator to the objects as follows. If the specified relation returns #t for all objecti and objectj where n is the number of objects and 1 <= i < j <= n, then the procedures return #t, but otherwise #f. Because the relations are transitive, it suffices to compare each object with its successor. The order in which the values are compared is unspecified.

(
<=?
[
comparator?
comparator
]
object1
object2
object3
...
)
⟹
boolean?

(
<?
[
comparator?
comparator
]
object1
object2
object3
...
)
⟹
boolean?

(
<?
[
comparator?
comparator
]
object1
object2
object3
...
)
⟹
boolean?

(
=?
[
comparator?
comparator
]
object1
object2
object3
...
)
⟹
boolean?

(
=?
[
comparator?
comparator
]
object1
object2
object3
...
)
⟹
boolean?

(
>=?
[
comparator?
comparator
]
object1
object2
object3
...
)
⟹
boolean?

(
>=?
[
comparator?
comparator
]
object1
object2
object3
...
)
⟹
boolean?

(
>?
[
comparator?
comparator
]
object1
object2
object3
...
)
⟹
boolean?

(
>?
[
comparator?
comparator
]
object1
object2
object3
...
)
⟹
boolean?

(
abandoned-mutex-exception?
obj
)
⟹
boolean?

The abs procedure returns the absolute value of its argument.

(
alist->bag
[
comparator?
comparator
]
[
list?
alist
]
)
⟹
bag?

(
alist->bag
[
comparator?
comparator
]
[
list?
alist
]
)
⟹
bag?

(
alist->hash-table
[
list?
alist
]
[
comparator?
comparator
]
arg
...
)
⟹
hash-table?

(lambda (key datum alist) (cons (cons key datum) alist)) Cons a new alist entry mapping key -> datum onto alist.

Make a fresh copy of alist. This means copying each pair that forms an association as well as the spine of the list.