diff --git a/collects/data/gvector.rkt b/collects/data/gvector.rkt index b51e988d03..0d92f61ba1 100644 --- a/collects/data/gvector.rkt +++ b/collects/data/gvector.rkt @@ -108,6 +108,9 @@ (define (gvector->vector gv) (vector-copy (gvector-vec gv) 0 (gvector-n gv))) +(define (gvector->list gv) + (vector->list (gvector->vector gv))) + ;; Iteration methods ;; A gvector position is represented as an exact-nonnegative-integer. @@ -237,7 +240,9 @@ [gvector-count (-> gvector? any)] [gvector->vector - (-> gvector? vector?)]) + (-> gvector? vector?)] + [gvector->list + (-> gvector? list?)]) (provide (rename-out [in-gvector* in-gvector]) for/gvector diff --git a/collects/data/scribblings/gvector.scrbl b/collects/data/scribblings/gvector.scrbl index 15a2adab2d..f36c6598d7 100644 --- a/collects/data/scribblings/gvector.scrbl +++ b/collects/data/scribblings/gvector.scrbl @@ -104,6 +104,13 @@ Returns a vector of length @racket[(gvector-count gv)] containing the elements of @racket[gv] in order. } +@defproc[(gvector->list [gv gvector?]) + list?]{ + +Returns a list of length @racket[(gvector-count gv)] containing the +elements of @racket[gv] in order. +} + @defproc[(in-gvector [gv gvector?]) sequence?]{