From 8466d8cfa486fb30d1755c4261b781135083787b Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 20 Feb 2017 00:05:29 -0800 Subject: Import Upstream version 3a1 --- srfi-9.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 srfi-9.scm (limited to 'srfi-9.scm') diff --git a/srfi-9.scm b/srfi-9.scm new file mode 100644 index 0000000..e55b193 --- /dev/null +++ b/srfi-9.scm @@ -0,0 +1,16 @@ +(require 'record) +(define-syntax define-record-field + (syntax-rules () + ((define-record-field type field-tag accessor) + (define accessor (record-accessor type 'field-tag))) + ((define-record-field type field-tag accessor modifier) + (begin (define accessor (record-accessor type 'field-tag)) + (define modifier (record-modifier type 'field-tag)))))) +;@ +(define-syntax define-record-type + (syntax-rules () + ((define-record-type type (constructor constructor-tag ...) predicate (field-tag accessor . more) ...) + (begin (define type (make-record-type 'type '(field-tag ...))) + (define constructor (record-constructor type '(constructor-tag ...))) + (define predicate (record-predicate type)) + (define-record-field type field-tag accessor . more) ...)))) -- cgit v1.2.3