[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: various comments
Jussi Piitulainen wrote:
(define arr1 (share-array arr (shape 0 3) (lambda (j) (- 2 j))))
Then I get essentially the same array as vec. Its implementation might
be more expensive, though, while vec remains oblivious to all that is
The result arr1 should *not* point to arr, but should just re-use the same
data vector vec. In this case share-array may do a little more work,
result should *not* be any more expensive to use - in fact it should be
exactly the same, using the same data-vector. The implementation can also
optionally share shapes and transformation maps. However, (eq? arr arr1)
must be #f.
If you create a chain of shared arrays, one from the previous,
they all point back to the original vector, and all the intermediaries
garbage collected if not otherwise referenced. This is essential.