Matthew Butterick 6 years ago
parent c9f87e364b
commit 99cce00d36

@ -19,15 +19,16 @@ https://github.com/mbutterick/restructure/blob/master/src/LazyArray.coffee
'_length (xarray-base-len xla)) '_length (xarray-base-len xla))
parent)]) parent)])
(define starting-pos (pos port)) (define starting-pos (pos port))
(define res (for/stream ([index (in-range decoded-len)]) (define type (xarray-base-type xla))
(define type (xarray-base-type xla)) (begin0
(define orig-pos (pos port)) (for/stream ([index (in-range decoded-len)])
(pos port (+ starting-pos (* (size type #f #:parent parent) index))) (define orig-pos (pos port))
(define new-item (decode type port #:parent parent)) (pos port (+ starting-pos (* (size type #f #:parent parent) index)))
(pos port orig-pos) ;; use explicit `port` arg below because this evaluation is delayed
new-item)) (begin0
(pos port (+ (pos port) (* decoded-len (size (xarray-base-type xla) #f #:parent parent)))) (decode type port #:parent parent)
res))) (pos port orig-pos)))
(pos port (+ (pos port) (* decoded-len (size (xarray-base-type xla) #f #:parent parent))))))))
(define (xlazy-array-encode xla val [port-arg (current-output-port)] #:parent [parent #f]) (define (xlazy-array-encode xla val [port-arg (current-output-port)] #:parent [parent #f])
(xarray-encode xla (if (stream? val) (stream->list val) val) port-arg #:parent parent)) (xarray-encode xla (if (stream? val) (stream->list val) val) port-arg #:parent parent))

Loading…
Cancel
Save