首页 > 解决方案 > 在ghci中自动将`[Char]`显示为`String`?

问题描述

有没有办法让 ghci 自动显示[Char]as的所有实例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]作为其类型的一部分的每个表达式添加到显式类型签名中,但我更喜欢将大多数签名留在我的代码之外,即使有些作者建议始终包含类型签名。

(这可能是一个常见问题解答,因此如果它因引用另一个问题而关闭,我不会感到惊讶,但我在搜索中无法找到该问题。那些在 SO 中对 Haskell 问题有更多经验的人可能是能够比我更好地找到以前的问题。)

标签: haskellghci

解决方案


不,目前没有办法做到这一点。


推荐阅读