let-plus

API Reference

let-plus

Destructuring extension of LET*.

LET-PLUS

  • Generic-Function LET+-EXPANSION (form value body)
    Return an expansion for a LET+ form.
  • Method LET+-EXPANSION ((form list) value body)
  • Method LET+-EXPANSION ((form list) value body)
  • Method LET+-EXPANSION ((form list) value body)
  • Method LET+-EXPANSION ((variable symbol) value body)
  • Method LET+-EXPANSION ((variable symbol) value body)
  • Method LET+-EXPANSION ((variable symbol) value body)
  • Method LET+-EXPANSION ((variable null) value body)
  • Method LET+-EXPANSION ((variable null) value body)
  • Method LET+-EXPANSION ((variable null) value body)
  • Method LET+-EXPANSION (form value body)
  • Method LET+-EXPANSION (form value body)
  • Method LET+-EXPANSION (form value body)
  • Generic-Function LET+-EXPANSION-FOR-LIST (first rest value body)
    LET+-EXPANSION calls this for lists, see the latter for semantics of returned values.
  • Method LET+-EXPANSION-FOR-LIST (first rest value body)
  • Method LET+-EXPANSION-FOR-LIST (first rest value body)
  • Method LET+-EXPANSION-FOR-LIST (first rest value body)
  • Macro LET+ (bindings &body body)
    Destructuring bindings. See the documentation of the LET-PLUS library. Most accepted forms start with &.
  • Macro DEFINE-LET+-EXPANSION ((name arguments &key (value-var 'value) (body-var 'body) (uses-value? t) (once-only? uses-value?)) &body body)
    Define an expansion for LET+ forms which are lists, starting with NAME. ARGUMENTS is destructured if a list. A placeholder macro is defined with NAME, using DOCSTRING and ARGUMENTS. The value form is bound to VALUE-VAR (wrapped in ONCE-ONLY when ONCE-ONLY?), while the body is bound to BODY-VAR. USES-VALUE? determines if the form uses a value, and generates the appropriate checks.
  • Macro &ACCESSORS (&whole whole479 &rest accessors)
    LET+ form, similar to WITH-ACCESSORS.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&accessors)) arguments478 value body)
  • Macro &ACCESSORS-R/O (&whole whole535 &rest accessors)
    LET+ form, similar to WITH-ACCESSORS, but read-only.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&accessors-r/o)) arguments534 value body)
  • Macro &SLOTS (&whole whole591 &rest slots)
    LET+ form, similar to WITH-SLOTS.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&slots)) arguments590 value body)
  • Macro &SLOTS-R/O (&whole whole630 &rest slots)
    LET+ form, similar to WITH-SLOTS but read-only.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&slots-r/o)) arguments629 value body)
  • Macro &STRUCTURE (&whole whole689 conc-name &rest slots)
    LET+ form for slots of a structure, with accessors generated using CONC-NAME.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&structure)) arguments688 value body)
  • Macro &STRUCTURE-R/O (&whole whole759 conc-name &rest slots)
    LET+ form for slots of a structure, with accessors generated using CONC-NAME. Read-only version.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&structure-r/o)) arguments758 value body)
  • Macro &VALUES (&whole whole829 &rest values)
    LET+ form for multiple values.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&values)) arguments828 value body)
  • Method LET+-EXPANSION ((array array) value body)
    LET+ expansion for mapping array elements to variables.
  • Macro &ARRAY-ELEMENTS (&whole whole1009 &rest array-elements)
    LET+ form, mapping (variable &rest subscripts) specifications to array-elements. VARIABLE is an accessor, which can be used for reading and writing array elements.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&array-elements)) arguments1008 value body)
  • Macro &ARRAY-ELEMENTS-R/O (&whole whole1061 &rest array-elements)
    LET+ form, mapping (variable &rest subscripts) specifications to array-elements. Read-only accessor, values assigned to VARIABLEs.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&array-elements-r/o)) arguments1060 value body)
  • Macro &FLET (&whole whole1122 function-name lambda-list &body function-body)
    LET+ form for function definitions. Expands into an FLET.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&flet)) arguments1121 value body)
  • Macro &LABELS (&whole whole1175 function-name lambda-list &body function-body)
    LET+ form for function definitions. Expands into an LABELS, thus allowing recursive functions.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&labels)) arguments1174 value body)
  • Macro &MACROLET (&whole whole1247 macro-name lambda-list &body macro-body)
    LET+ form for local macro definitions. Expands into an MACROLET.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&macrolet)) arguments1246 value body)
  • Macro &SYMBOL-MACROLET (&whole whole1300 symbol expansion)
    LET+ form for local symbol macros. Expands into a SYMBOL-MACROLET.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&symbol-macrolet)) arguments1299 value body)
  • Macro &PLIST (&whole whole1349 &rest entries)
    LET+ form for property lists. Each entry is (variable &optional key default).
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&plist)) arguments1348 value body)
  • Macro &PLIST-R/O (&whole whole1408 &rest entries)
    LET+ form for property lists, read only version. Each entry is (variable &optional key default).
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&plist-r/o)) arguments1407 value body)
  • Macro &HASH-TABLE (&whole whole1467 &rest entries)
    LET+ form for hash tables. Each entry is (variable &optional key default).
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&hash-table)) arguments1466 value body)
  • Macro &HASH-TABLE-R/O (&whole whole1526 &rest entries)
    LET+ form for hash tables. Each entry is (variable &optional key default). Read only version.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&hash-table-r/o)) arguments1525 value body)
  • Macro &FLET+ (&whole whole61 function-name lambda-list &body function-body)
    &FLET that destructures its arguments using LET+.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&flet+)) arguments60 value body)
  • Macro &LABELS+ (&whole whole115 function-name lambda-list &body function-body)
    &LABELS that destructures its arguments using LET+.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&labels+)) arguments114 value body)
  • Macro LAMBDA+ (lambda-list &body body)
    LAMBDA that destructures its arguments using LET+.
  • Macro DEFUN+ (name lambda-list &body body)
    DEFUN that destructures its arguments using LET+.
  • Macro DEFINE-STRUCTURE-LET+ ((name &key (conc-name (symbolicate name #\-)) (r/w (symbolicate #\& name)) (r/o (symbolicate #\& name '#:-r/o))) &rest slot-names)
    Define a LET+ expansion for accessing slots of a structure in a fixed order.
  • Macro &FWRAP (&whole whole288 name)
    Wrap closure in the local function NAME. Calls to NAME will call the closure.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&fwrap)) arguments287 value body)
  • Macro &ONCE-ONLY (&whole whole353 &rest specs)
    Expand to (ONCE-ONLY SPECS ...).
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&once-only)) arguments352 value body)
  • Macro &WITH-GENSYMS (&whole whole393 &rest names)
    Expand to (WITH-GENSYMS NAMES ...).
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&with-gensyms)) arguments392 value body)
  • Macro &COMPLEX (&whole whole433 x y)
    Access real and imaginary part of the value. Read-only.
  • Method LET+-EXPANSION-FOR-LIST ((first (eql '&complex)) arguments432 value body)