Motivation
To add extensibility to the Clojure reader in a composable way.
General Goals
- new syntax for "tagged" literals in the reader
- tags can be namespaced
- non-namespace-qualified tags are reserved for Clojure
- when the reader encounters a tagged literal, it invokes a function associated with that tag
- users may define new tags and tag-reader functions
- users may override functions for built-in tags
Non-goals
- Common Lisp-style reader macros
- Custom parsing of the character stream
- Reader will parse tagged literals as data and pass that to the tag function
References / See Also
Labels: