相关疑难解决方法(0)

show wrt转义字符的语义

考虑以下示例(?>= ghci,$= shell):

?> writeFile "d" $ show "d"
$ cat d
"d"

?> writeFile "d" "d"
$ cat d
d

?> writeFile "backslash" $ show "\\"
$ cat backslash
"\\"

?> writeFile "backslash" "\\"
$ cat backslash
\

?> writeFile "cat" $ show "" -- U+1F408
$ cat cat
"\128008"

?> writeFile "cat" ""
$ cat cat

Run Code Online (Sandbox Code Playgroud)

我理解另一种方式"\128008"只是""在Haskell源代码中表示的另一种方式 .我的问题是:为什么""示例的行为类似于反斜杠而不是像"d"?既然它是一个可打印的角色,它不应该像一个字母吗?

更一般地说,确定字符是显示为可打印字符还是转义码的规则是什么?我查看 了Haskell 2010语言报告中的第6.3节,但没有指定确切的行为.

haskell ghc

4
推荐指数
1
解决办法
106
查看次数

标签 统计

ghc ×1

haskell ×1