在ghci中自动将`[Char]`显示为`String`?
Automatically display `[Char]` as `String` in ghci?
有没有办法让 ghci 自动将 [Char]
的所有实例显示为 String
?这就是我通常想要的。
:set -XOverloadedStrings
做了我想要的事情,但似乎只针对字符串文字:
Prelude> :type ["foo", "bar"]
["foo", "bar"] :: [[Char]]
Prelude> :set -XOverloadedStrings
Prelude> :type ["foo", "bar"]
["foo", "bar"] :: Data.String.IsString a => [a]
Prelude> f s = "Yes, " ++ s
Prelude> :type f
f :: [Char] -> [Char]
我知道我可以将 String
添加到每个包含 String
/[Char]
作为其类型一部分的表达式的显式类型签名中,但我更喜欢将大多数签名省略我的代码,尽管一些作者建议总是包含类型签名。
(这很可能是一个常见问题解答,所以如果它因引用另一个问题而关闭我也不会感到惊讶,但我一直无法在搜索中找到该问题。那些对[有更多经验的人=25=] SO 中的问题可能能够比我更好地找到以前的问题。)
不,目前没有办法做到这一点。
有没有办法让 ghci 自动将 [Char]
的所有实例显示为 String
?这就是我通常想要的。
:set -XOverloadedStrings
做了我想要的事情,但似乎只针对字符串文字:
Prelude> :type ["foo", "bar"]
["foo", "bar"] :: [[Char]]
Prelude> :set -XOverloadedStrings
Prelude> :type ["foo", "bar"]
["foo", "bar"] :: Data.String.IsString a => [a]
Prelude> f s = "Yes, " ++ s
Prelude> :type f
f :: [Char] -> [Char]
我知道我可以将 String
添加到每个包含 String
/[Char]
作为其类型一部分的表达式的显式类型签名中,但我更喜欢将大多数签名省略我的代码,尽管一些作者建议总是包含类型签名。
(这很可能是一个常见问题解答,所以如果它因引用另一个问题而关闭我也不会感到惊讶,但我一直无法在搜索中找到该问题。那些对[有更多经验的人=25=] SO 中的问题可能能够比我更好地找到以前的问题。)
不,目前没有办法做到这一点。