[Haskell-cafe] Lazy lists simulated by unboxed mutable arrays

Henning Thielemann lemming at henning-thielemann.de
Wed May 28 01:51:28 EDT 2008


I wonder whether the following idea has been investigated or implemented 
somewhere:
   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) ?


More information about the Haskell-Cafe mailing list