Normative Rules: Symbol Case Folding

← Prev | ↑ Chapter | Next → | Index | Symbols

Normative Rules: Symbol Case Folding

Statement

The reader case-folds every unquoted symbol to upper case at read time. The case-folding applies uniformly to source text, the result of (read string), and the canonical name returned by vl-symbol-name. There is no escape syntax (such as Common Lisp's |...| or \ ) for preserving mixed case in symbol names.

Vendor Evidence

BricsCAD V26 / macOS direct probe section G:

  • 'foo prints FOO.
  • 'FoO prints FOO.
  • (eq 'foo 'FOO) returns T.
  • (vl-symbol-name 'mixed-Symbol) returns the string "MIXED-SYMBOL".
  • (read "mixedFromRead") returns the symbol MIXEDFROMREAD.

Strict / Lax Policy

Strict in every supported dialect. The bricscad-v26 dialect's lax token mode does not relax case folding; it relaxes only token classification (e.g. lone trailing identifier characters on integers). String literals are unaffected.

Cross-references

  • Compare CLHS 23.1 — CL also case-folds by default, but provides readtable-case and the |...| escape.
  • Compare R7RS 7.1.1 — Scheme is case-sensitive by default since R7RS.

Source Notes

Phase-6 BricsCAD V26 / macOS semantics probe section G.