【发布时间】:2012-12-16 15:07:25
【问题描述】:
有人告诉我编写一个函数来检查字符串中的标点符号是否都是空格。即:
haskell> f "Hello my name is Brad"
True
haskell> f "Hello my name is Brad!"
False
我写了一个辅助函数如下,
import Data.Char
isPunc x = not (isDigit x || isAlpha x)
这被 Haskell 接受并且运行良好。但是一旦我在下面的函数中使用它,
--function f defined
f :: String -> Bool
f xs = and [ x == ' ' | x <- xs, isPunc x]
它给了我这个错误:
ambiguous occurence 'isPunc', could mean "Main.isPunc" or "Data.Char. isPunc"
我得到了它抱怨的部分内容,但是导入了 Data.Char,我真的不明白它为什么抱怨。
【问题讨论】:
-
@minitech 有吗?在我的安装中没有具有该名称的功能,并且它也没有在文档中列出(尽管
isPunctuation是)。请注意,OP 的代码对我来说很好。 -
布拉德,您是否按原样发布了代码和错误消息?你没有在你的真实代码中将你的函数命名为
isPunctuation,然后在代码和错误消息中将它重命名为isPunc,是吗?
标签: haskell import variable-names