文字列の句読点がすべてスペースかどうかをチェックする関数を書くように言われました。すなわち:
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 をインポートしたので、不平を言っている理由がよくわかりません。