Dispatch Tags - MIT/GNU Scheme 7.7.90+
Description: MIT/GNU Scheme 7.7.90+

Previous: Method Generators, Up: Generic Dispatch

#### 12.6.3 Dispatch Tags

A dispatch tag is an object that represents the “type” of an object, for the purposes of generic dispatch. Every object has an associated dispatch tag. Built-in objects like pairs or booleans have predefined tags, while dynamically typed objects like records have tags that are created as needed.

— procedure: dispatch-tag object

> Returns the dispatch tag for object.

>               (dispatch-tag #f)       ⇒ #[dispatch-tag 17 (boolean)]
>               (dispatch-tag #t)       ⇒ #[dispatch-tag 17 (boolean)]
>               (dispatch-tag (list))   ⇒ #[dispatch-tag 18 (null)]
>               (dispatch-tag (list 3)) ⇒ #[dispatch-tag 19 (pair list)]

— procedure: built-in-dispatch-tag name

> Returns the built-in dispatch tag called name. Name must be a symbol that is the name of a known built-in dispatch tag.

>               (built-in-dispatch-tag 'boolean) ⇒ #[dispatch-tag 17 (boolean)]
>               (built-in-dispatch-tag 'null)    ⇒ #[dispatch-tag 18 (null)]
>               (built-in-dispatch-tag 'pair)    ⇒ #[dispatch-tag 19 (pair list)]
>               (built-in-dispatch-tag 'list)    ⇒ #[dispatch-tag 19 (pair list)]

— procedure: built-in-dispatch-tags

> Returns a list of the built-in dispatch tags.

— procedure: record-type-dispatch-tag record-type

> Returns the dispatch tag associate with record-type. See See Records, for more information about record types.

— procedure: dispatch-tag? object

> Returns ‘`#t`’ if object is a dispatch tag, and ‘`#f`’ otherwise.

— procedure: guarantee-dispatch-tag object caller

> Signals an error if object is not a dispatch tag. Caller is a symbol that is printed as part of the error message and is intended to be the name of the procedure where the error occurs.