Can't make sense of newArray# docs
Johan Tibell
johan.tibell at gmail.com
Tue Jan 18 23:18:33 CET 2011
Hi,
The docs for newArray# states:
"Create a new mutable array of specified size (in bytes), in the
specified state thread, with each element containing the specified
initial value."
Why is the size in bytes? Is Array# meant to be used both for boxed
and unboxed values? For arrays of boxed values I'd expect the size to
be the number of elements and the allocated size the number of
elements multiplied by the size of a pointer. Are the docs correct? If
so, how do I allocate an Array# of pointers? I'm trying to implement
the following array type:
data MurableArray s a = Array { unArray :: !(MutableArray# s a) }
i.e. an array of boxed values. I can't figure out how to write
new :: Int -> a -> ST s (MutableArray s a)
where the first argument is the number of elements (of type a).
Johan
More information about the Glasgow-haskell-users
mailing list