编译时出现此错误:
Ambigous occurence'map'
中定义的Main.map
它可以引用blablabla
我在这里阅读了类似的帖子并尝试了这个:
import qualified Data.Map as Map
map :: (a->b) -> [a] -> [b]
map f [] = []
map f (x:xs) = f x : map f xs
我仍然收到错误。我正在编制GHCI。
我该如何避免这种情况?
答案 0 :(得分:5)
您收到错误是因为标准前奏(默认导入)已经包含了地图功能。
如果你正在练习,那么使用你自己的新名称是有意义的。这样你可以检查你的工作原理与原版相同。在名称后面加上破折号,或称之为mymap或其他东西。
您还可以进行显式导入,以便将地图保留:
import Prelude hiding (map)
但我认为考虑你自己的非冲突名称不那么自负。