== 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]].