mes: srfi-9: Guile interface compliancy.

* mes/module/srfi/srfi-9-struct.mes (record-type-fields): Rename from
record-field-names.  Update users.
* mes/module/srfi/srfi-9-vector.mes (record-type-fields): Likewise.
* mes/module/srfi/srfi-9/gnu-struct.mes (set-field): Update.
This commit is contained in:
Jan Nieuwenhuizen 2019-11-10 11:21:37 +01:00 committed by Jan (janneke) Nieuwenhuizen
parent bd58f2a258
commit c31a597143
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
3 changed files with 8 additions and 8 deletions

View File

@ -43,7 +43,7 @@
(define (record-type o)
(struct-ref o 2))
(define (record-field-names o)
(define (record-type-fields o)
(struct-ref o 3))
(define (record-predicate type)
@ -56,7 +56,7 @@
(record-type? (struct-vtable o))))
(define (record-constructor type . field-names)
(let* ((fields (record-field-names type))
(let* ((fields (record-type-fields type))
(name (record-type type))
(field-names (if (null? field-names) fields
(car field-names))))
@ -70,7 +70,7 @@
(display "#<")
(display (record-type o))
(let* ((vtable (struct-vtable o))
(fields (record-field-names vtable)))
(fields (record-type-fields vtable)))
(for-each (lambda (field)
(display " ")
(display field)
@ -105,7 +105,7 @@
(struct-set! o i v)))))
(define (record-field-index type field)
(+ 3 (or (lst-index (record-field-names type) field)
(+ 3 (or (lst-index (record-type-fields type) field)
(error "no such field" type field))))
(define (lst-index lst o)

View File

@ -45,7 +45,7 @@
(define (record-type o)
(vector-ref o 1))
(define (record-field-names o)
(define (record-type-fields o)
(vector-ref o 2))
(define (record-predicate type)
@ -56,7 +56,7 @@
(eq? (record-type o) type))))
(define (record-constructor type . field-names)
(let* ((fields (record-field-names type))
(let* ((fields (record-type-fields type))
(field-names (if (null? field-names) fields
(car field-names))))
(lambda (. o)
@ -90,7 +90,7 @@
(vector-set! o i v)))))
(define (record-field-index type field)
(1+ (or (lst-index (record-field-names type) field)
(1+ (or (lst-index (record-type-fields type) field)
(error "no such field" type field))))
(define (lst-index lst o)

View File

@ -33,6 +33,6 @@
(define (field->value field)
(if (eq? set field) ,value
((record-accessor type field) ,o)))
(let* ((fields (record-field-names type))
(let* ((fields (record-type-fields type))
(values (map field->value fields)))
(apply (record-constructor type fields) values)))))