unstable/struct: added struct->list

some (cdr (vector->list (struct->vector x))) => (struct->list x)

svn: r16622

original commit: d1439ef6c61807555b96c37639c4ad4e458766aa
This commit is contained in:
Ryan Culpepper 2009-11-08 21:17:51 +00:00
parent 1406c9b916
commit 442ab704e5

View File

@ -4,6 +4,7 @@
scheme/pretty scheme/pretty
macro-debugger/util/class-iop macro-debugger/util/class-iop
syntax/stx syntax/stx
unstable/struct
"interfaces.ss") "interfaces.ss")
(provide (all-defined-out)) (provide (all-defined-out))
@ -140,7 +141,7 @@
;; unfold-pstruct : prefab-struct -> (values (list -> prefab-struct) list) ;; unfold-pstruct : prefab-struct -> (values (list -> prefab-struct) list)
(define (unfold-pstruct obj) (define (unfold-pstruct obj)
(define key (prefab-struct-key obj)) (define key (prefab-struct-key obj))
(define fields (cdr (vector->list (struct->vector obj)))) (define fields (struct->list obj))
(values (lambda (new-fields) (values (lambda (new-fields)
(apply make-prefab-struct key new-fields)) (apply make-prefab-struct key new-fields))
fields)) fields))