1. Module (chicken plist)
    1. get
    2. put!
    3. remprop!
    4. symbol-plist
    5. get-properties

Module (chicken plist)

As in other Lisp dialects, CHICKEN supports "property lists" associated with symbols. Properties are accessible via a key that can be any kind of value but which will be compared using eq?.

get

[procedure] (get SYMBOL PROPERTY [DEFAULT])

Returns the value stored under the key PROPERTY in the property list of SYMBOL. If no such property is stored, returns DEFAULT. The DEFAULT is optional and defaults to #f.

put!

[procedure] (put! SYMBOL PROPERTY VALUE)
[procedure] (set! (get SYMBOL PROPERTY) VALUE)

Stores VALUE under the key PROPERTY in the property list of SYMBOL replacing any previously stored value.

remprop!

[procedure] (remprop! SYMBOL PROPERTY)

Deletes the first property matching the key PROPERTY in the property list of SYMBOL. Returns #t when a deletion performed, and #f otherwise.

symbol-plist

[procedure] (symbol-plist SYMBOL)
[procedure] (set! (symbol-plist SYMBOL) LST)

Returns the property list of SYMBOL or sets it. The property list is a flat list of alternating properties and values.

This list is not guaranteed to be a fresh copy, so avoid mutating it directly.

get-properties

[procedure] (get-properties SYMBOL PROPERTIES)

Searches the property list of SYMBOL for the first property with a key in the list PROPERTIES. Returns 3 values: the matching property key, value, and the tail of property list after the matching property. When no match found all values are #f.

This tail of the property list is not guaranteed to be a fresh copy, so avoid mutating it directly.

PROPERTIES may also be an atom, in which case it is treated as a list of one element.


Previous: Module (chicken platform)

Next: Module (chicken port)