
On 1/22/08, Duncan Coutts
On Tue, 2008-01-22 at 09:29 +0000, Magnus Therning wrote:
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"
That seems unlikely.
Unlikely yes, yet I get the following in GHCi (ghc 6.6.1, the version currently in Debian Sid):
map ord "a" [97] map ord "ö" [195,182]
Funky, isn't it? ;-) Easy!
Prelude> 'å' == '\229' True Prelude> 'å' == Char.chr 229 True
Remember, when you type: Prelude> 'å'
what you really get is: Prelude> putStrLn (show 'å')
So perhaps what is confusing you is the Show instance for Char which converts Char -> String into a portable ascii representation.
Have you tried putting any of this into GHCi (6.6.1)? Any line with 'å' results in the following for me:
'å' <interactive>:1:2: lexical error in string/character literal at character '\165' "å" "\195\165"
Somewhat disappointing. GHCi 6.8.2 does perform better though. /M