[Haskell-cafe] Has character changed in GHC 6.8?

Magnus Therning magnus at therning.org
Tue Jan 22 04:29:08 EST 2008


I vaguely remember that in GHC 6.6 code like this

  length $ map ord "a string"

being able able to generate a different answer than

  length "a string"

At the time I thought that the encoding (in my case UTF-8) was “leaking
through”.  After switching to GHC 6.8 the behaviour seems to have
changed, and mapping 'ord' on a string results in a list of ints
representing the Unicode code point rather than the encoding:

  > map ord "åäö"
  [229,228,246]

Is this the case, or is there something strange going on with character
encodings?

I was hoping that this would mean that 'chr . ord' would basically be a
no-op, but no such luck:

  > chr . ord $ 'å'
  '\229'

What would I have to do to get an 'å' from '229'?

/M

-- 
Magnus Therning                             (OpenPGP: 0xAB4DFBA4)
magnus@therning.org             Jabber: magnus.therning@gmail.com
http://therning.org/magnus

What if I don't want to obey the laws? Do they throw me in jail with
the other bad monads?
     -- Daveman

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: OpenPGP digital signature
Url : http://www.haskell.org/pipermail/haskell-cafe/attachments/20080122/a16dd2a3/signature.bin


More information about the Haskell-Cafe mailing list