如何解释Haskell字符'\ 250'

bra*_*der 1 ascii haskell escaping

我试图了解逃逸如何在Haskell中工作.

head "\250\218" 回报 '\250'

所以Haskell认为\ 250是一个角色.到底发生了什么?

Mik*_*vey 8

该字符串"\250\218"由两个数字转义符组成,每个转义符表示一个字符,字符代码以十进制形式给出.应用head返回第一个,打印'\250'.如果你申请Data.Char.ord这个,你会看到它有数字代码250(十进制).你可以使用相似的角色Data.Char.chr.

如下所示,使用这些代码打印字符会根据Unicode生成带重音的字母.

使用GHCi:

GHCi, version 8.0.1: http://www.haskell.org/ghc/  :? for help
Prelude> head "\250\218"
'\250'
Prelude> Data.Char.ord (head "\250\218")
250
Prelude> Data.Char.chr 251
'\251'
Prelude> putStrLn "\250\218"
úÚ
Prelude> 
Run Code Online (Sandbox Code Playgroud)

欲获得更多信息:

http://book.realworldhaskell.org/read/characters-strings-and-escaping-rules.html#id689632


Rei*_*ton 6

'\250' 是任何Unicode字符都有代码点(十进制)250,在这种情况下LATIN SMALL LETTER U WITH ACUTE(ú).