λ

Named Readtables Manual

Table of Contents

[in package EDITOR-HINTS.NAMED-READTABLES with nicknames NAMED-READTABLES]

λ

1 Introduction

Named-Readtables is a library that provides a namespace for readtables akin to the already-existing namespace of packages. In particular:

It follows that Named-Readtables is a facility for using readtables in a localized way.

Additionally, it also attempts to become a facility for using readtables in a modular way. In particular:

λ

1.1 Links and Systems

The official repository is https://github.com/melisgl/named-readtables, and this document in available in various formats on https://fixnum.com for the latest version.

λ

1.2 Acknowledgements

Thanks to Robert Goldman for making me want to write this library.

Thanks to Stephen Compall, Ariel Badichi, David Lichteblau, Bart Botta, David Crawford, and Pascal Costanza for being early adopters, providing comments and bugfixes.

λ

2 Overview

λ

2.1 Notes on the API

The API heavily imitates the API of packages. This has the nice property that any experienced Common Lisper will take it up without effort.

DEFREADTABLE              -   DEFPACKAGE
IN-READTABLE              -   IN-PACKAGE
MERGE-READTABLES-INTO     -   USE-PACKAGE
MAKE-READTABLE            -   MAKE-PACKAGE
UNREGISTER-READTABLE      -   DELETE-PACKAGE
RENAME-READTABLE          -   RENAME-PACKAGE
FIND-READTABLE            -   FIND-PACKAGE
READTABLE-NAME            -   PACKAGE-NAME
LIST-ALL-NAMED-READTABLES -   LIST-ALL-PACKAGES

λ

2.2 Important API idiosyncrasies

There are three major differences between the API of Named-Readtables, and the API of packages.

λ

2.3 Preregistered Readtables

λ

2.4 Examples

(defreadtable elisp:syntax
   (:merge :standard)
   (:macro-char #\? #'elisp::read-character-literal t)
   (:macro-char #\[ #'elisp::read-vector-literal t)
   ...
   (:case :preserve))

(defreadtable scheme:syntax
   (:merge :standard)
   (:macro-char #\[ #'(lambda (stream char)
                         (read-delimited-list #\] stream)))
   (:macro-char #\# :dispatch)
   (:dispatch-macro-char #\# #\t #'scheme::read-#t)
   (:dispatch-macro-char #\# #\f #'scheme::read-#f)
   ...
   (:case :preserve))

(in-readtable elisp:syntax)

...

(in-readtable scheme:syntax)

...

λ

3 Reference

4 Indices

Referrer definition type abbreviations:

4.1 Function and Macro Index

4.2 Type Index

4.3 Misc Index

[Generated 2026-07-19T23:46:15Z]