== define-record-and-printer Trivial macro to define records and appropriate printers [[toc:]] === {{define-record-and-printer}} (define-record-and-printer name slotname) → record Define a record and a printer that shows the contents of the record as a vector; see {{define-record}}. ; {{name}} : The name of the record ; {{slotname}} : The name of the slot (define-syntax define-record-and-printer (lambda (expression rename compare) (match expression ((_ record . fields) (let ((%define-record (rename 'define-record)) (%define-record-printer (rename 'define-record-printer)) (%begin (rename 'begin)) (%lambda (rename 'lambda)) (%write (rename 'write)) (%record->vector (rename 'record->vector))) `(,%begin (,%define-record ,record ,@fields) (,%define-record-printer ,record (,%lambda (record out) (,%write (,%record->vector record) out))))))))) === About this egg ==== Author [[/users/klutometis|Peter Danenberg]] ==== Repository [[https://github.com/klutometis/define-record-and-printer]] ==== License BSD ==== Dependencies * [[(hahn 0.9.3)]] * [[matchable]] * [[setup-helper]] ==== Versions ; [[https://github.com/klutometis/define-record-and-printer/releases/tag/0.1|0.1]] : Version 0.1 ; [[https://github.com/klutometis/define-record-and-printer/releases/tag/0.1.1|0.1.1]] : Release with docs ; [[https://github.com/klutometis/define-record-and-printer/releases/tag/0.1.2|0.1.2]] : Add cock. ; [[https://github.com/klutometis/define-record-and-printer/releases/tag/0.1.3|0.1.3]] : Remove the dependency on setup-helper-cock. ==== Colophon Documented by [[/egg/hahn|hahn]].