NAME

Data::SExpression::Symbol -- A Lisp symbol read by Data::SExpression

DESCRIPTION

A Data::SExpression::Symbol represents a lisp symbol. Symbols are usually used as opaque objects that can be compared with each other, but are not intended to be used for other operations.

There are two kinds of symbols, interned, and uninterned. Most symbols are interned. There is only ever one interned instance of the Symbol class for a given name.

STRINGIFICATION AND COMPARISON

Interned symbols stringify to their ->name. Uninterned symbols stringify to "#:$name", after the Common Lisp convention.

Interned symbols are eq to their name. Uninterned symbols are not eq to anything except themself.

new NAME

Returns a new interned symbol with the given NAME

uninterned NAME

Returns a new uninterned symbol with the given NAME

name

Returns the symbol's name, as passed to new or uninterned.

interned

Returned true iff the symbol is interned

SEE ALSO

Data::SExpression

AUTHOR

Nelson Elhage <nelhage@mit.edu>