On Wed, 28 May 2008, Bulat Ziganshin wrote:
Hello Henning,
Wednesday, May 28, 2008, 9:51:28 AM, you wrote:
We could simulate a list with strict elements, i.e.
data StrictList a = Elem !a (StrictList a) | End
by an unboxed array with a cursor to the next element to be evaluated and
a function that generates the next element. Whenever an element with an
index beyond the cursor is requested, sufficiently many new elements are
written to the array and the cursor is advanced. This would still allow
the nice tricks for recursive Fibonacci sequence definition. This will
obviously save memory, but can we also expect that it is noticeably faster
than (StrictList a) ?
looks like lazy.bytestring generalized to any a
As far as I know, ByteString.Lazy is chunky, that is laziness occurs only
every 1000th byte or so. My suggestion aims at laziness at element level
but still more efficiency than a list.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe