[Haskell-cafe] Data.IArray rant

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Sat Sep 3 06:20:42 CEST 2011

On 3 September 2011 12:53, Evan Laforge <qdunkan at gmail.com> wrote:
>> To an extent, I wonder how much of this has been that arrays were
>> considered to be bad in Haskell, so no-one used them and no-one
>> bothered to try and improve the API much (and instead went and created
>> Vector, etc.).
> Right, so we have arrays with nicer APIs, it's just that IArray has
> been kind of left behind.  I don't think arrays are bad in haskell, if
> that were true all those array libraries wouldn't be so popular!  They
> might not be quite the go-to type as in other languages, but they
> still have their uses.

By "bad" I was referring to the API, not the data structure itself.

>> Any particular reason you used Data.Graph rather than fgl, etc.?
> Well... it's built-in... I needed something simple... so I just hit
> the ghc stdlib doc and searched for "graph".  Is this another "left
> behind" module?  And if so... well, maybe it's in the same situation
> as IArray.

Pretty much; most people don't even think much of FGL.  I _really_
should get around to expanding and improving Edward Kmett's graph
library so that it covers more of a variety of common graph types and
operations, but I've been busy on specialised graph libraries that I
need lately.

> Right, it's hard to dislike the underlying data structure, arrays are
> about as simple as you can get :)  My guess was the same as yours,
> i.e. that it's been sort of neglected but it's a bootlib and H98 so
> nothing can happen to it quickly.
> I can't realistically suggest a course of action here, other than
> "gosh someone should update these modules" to which everyone is likely
> to say "yes, it would be nice if you did that" :)  Or maybe in 10
> years vector will be mature and standard and the old Array stuff can
> be deprecated and removed.  So that's why this was more of a little
> rant than actual constructive comment.

Maybe as a stop-gap some more useful/constructive
examples/documentation on how to use Data.Array.IArray compared to
vector, etc.?  That said, apart from Data.Graph I don't know of many
uses of it nowadays, as everyone seems to have migrated to vector for
1-Dimensional and hmatrix/repa for multi-dimensional.

Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com

More information about the Haskell-Cafe mailing list