1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 01:30:27 +02:00

* boot-9.scm (make-record-type, record-constructor): Don't assume

the empty list is false when parsing the argument list.
This commit is contained in:
Jim Blandy 1996-10-03 05:47:12 +00:00
parent ddef832786
commit 8e69342425

View file

@ -391,7 +391,7 @@
(and (struct? obj) (eq? record-type-vtable (struct-vtable obj))))
(define (make-record-type type-name fields . opt)
(let ((printer-fn (and opt (car opt))))
(let ((printer-fn (and (pair? opt) (car opt))))
(let ((struct (make-struct record-type-vtable 0
(make-struct-layout (apply symbol-append (map (lambda (f) "pw") fields)))
type-name
@ -416,7 +416,7 @@
(error 'not-a-record-type obj)))
(define (record-constructor rtd . opt)
(let ((field-names (if opt (car opt) (record-type-fields rtd))))
(let ((field-names (if (pair? opt) (car opt) (record-type-fields rtd))))
(eval `(lambda ,field-names
(make-struct ',rtd 0 ,@(map (lambda (f)
(if (memq f field-names)