String != [Char]

Gabriel Dos Reis gdr at integrable-solutions.net
Mon Mar 26 13:37:36 CEST 2012


On Mon, Mar 26, 2012 at 4:57 AM, Simon Marlow <simonmar at microsoft.com> wrote:

> Remember that FilePath is not part of the debate, since neither [Char] nor Text are correct representations of FilePath.

Yes.

> If we want to do an evaluation of the pedagogical value of [Char] vs. Text, I suggest writing something like a regex matcher in both and comparing the two.

> One more thing: historically, performance considerations have been given a fairly low priority in the language design process for Haskell, and rightly so.  That doesn't mean performance has been ignored altogether (for example, seq), but it is almost never the case that a concession in other language design principles (e.g. consistency, simplicity) is made for performance reasons alone.  We should remember, when thinking about changes to Haskell, that Haskell is the way it is because of this uncompromising attitude, and we should be glad that Haskell is not burdened with (many) legacy warts that were invented to work around performance problems that no longer exist.  I'm not saying that this means we should ignore Text as a performance hack, just that performance should not come at the expense of good language design.

For pedagogical purposes (which seems to be the primary argument for
String = [Char]), I am far less concerned about performance than
correctness.

After going through the discussion this morning again, looking at
various arguments, I am not really sure that Haskell isn't burdened
with legacy warts ;-)

-- Gaby



More information about the Haskell-prime mailing list