Next: , Previous: , Up: expander lexenv prim   [Index]


15.3.4.2 Public names and labels

If we know the public name of a primitive syntactic binding (display, lambda, let, &condition, …) we can retrieve the binding’s label using system-label (see expander system-labels) and given the label we can retrieve the binding descriptor using symbol-value (see iklib symbols value). Examples:

(symbol-value (system-label 'display))
⇒ (core-prim . display)

(symbol-value (system-label 'lambda))
⇒ (core-macro . lambda)

(symbol-value (system-label 'let))
⇒ (core-macro . let)

(symbol-value (system-label '&condition))
⇒ (core-object-type-name . ---)

(symbol-value (system-label '__who__))
⇒ ($fluid . fluid-label.__who__)

For core primitive functions, record–type descriptors and record–constructor descriptors:

Core primitive syntaxes and non–core primitive syntaxes have implementation integrated in the expander: