bra*_*der 1 ascii haskell escaping
我试图了解逃逸如何在Haskell中工作.
head "\250\218"
回报
'\250'
所以Haskell认为\ 250是一个角色.到底发生了什么?
该字符串"\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