Haskell 人们应该如何解释哈斯克尔的性格'\250';

Haskell 人们应该如何解释哈斯克尔的性格'\250';,haskell,escaping,ascii,Haskell,Escaping,Ascii,我试图了解逃犯在哈斯克尔是如何工作的 head“\250\218” 返回 '\250' 所以Haskell认为\250是一个字符。这里到底发生了什么?'\250'是任何Unicode字符的码点(十进制)250,在本例中是带锐音符(ú)的拉丁小写字母U。'\250'是任何Unicode字符的码点(十进制)250,在本例中是带锐音符(ú)的拉丁小写字母U。字符串“\250\218”由两个数字转义组成,每个转义表示一个字符,字符代码以十进制形式给出。应用头返回第一个打印的“\250”。如果将Data.

我试图了解逃犯在哈斯克尔是如何工作的

head“\250\218”
返回
'\250'


所以Haskell认为\250是一个字符。这里到底发生了什么?

'\250'
是任何Unicode字符的码点(十进制)250,在本例中是带锐音符(ú)的拉丁小写字母U。

'\250'
是任何Unicode字符的码点(十进制)250,在本例中是带锐音符(ú)的拉丁小写字母U。

字符串
“\250\218”
由两个数字转义组成,每个转义表示一个字符,字符代码以十进制形式给出。应用
返回第一个打印的
“\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> 
有关更多信息:

字符串
“\250\218”
由两个数字转义组成,每个转义表示一个字符,字符代码以十进制形式给出。应用
返回第一个打印的
“\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> 
有关更多信息:


Haskell Escape与其他编程语言没有太大区别
“\123”
是Unicode代码点123(十进制)的表示形式<代码>“\x3f”是代码点0x3f(十六进制)。等等到底是什么让您感到困惑?我遇到了一些测试代码,这些代码似乎将\250视为四个字符,但将\ACK视为一个字符,因此我不确定unicode是否与ASCII escape有不同的处理方式。Haskell escape与其他编程语言没有太大的不同
“\123”
是Unicode代码点123(十进制)的表示形式<代码>“\x3f”是代码点0x3f(十六进制)。等等到底是什么让您感到困惑?我遇到了一些测试代码,它们似乎将\250视为四个字符,但将\ACK视为一个字符,因此我不确定unicode是否与ASCII转义不同。