映射函数haskell

映射函数haskell,haskell,map,Haskell,Map,我编译时遇到此错误: 模糊出现“地图” 它可以引用bla中定义的Main.map 我在这里读了一篇类似的帖子,并尝试了以下方法: import qualified Data.Map as Map map :: (a->b) -> [a] -> [b] map f [] = [] map f (x:xs) = f x : map f xs 我仍然得到错误。我正在编译GHCI 如何避

我编译时遇到此错误:

模糊出现“地图”
它可以引用bla中定义的Main.map

我在这里读了一篇类似的帖子,并尝试了以下方法:

import qualified Data.Map as Map

map                     :: (a->b) -> [a] -> [b]
map f  []               =  []
map f (x:xs)            =  f x : map f xs
我仍然得到错误。我正在编译GHCI


如何避免这种情况?

您会遇到错误,因为标准前奏曲(默认情况下导入)中有一个映射函数

如果您正在练习,那么为函数使用您自己的新名称是有意义的。这样你就可以用与原作相同的方式检查你的作品。在名字后面加个破折号,或者叫它mymap什么的

您还可以执行显式导入,以便不使用映射:

import Prelude hiding (map)

但我认为,考虑到自己的名字没有冲突,就不那么容易了。

你会出现错误,因为标准前奏曲(默认情况下导入)中有一个映射函数

如果您正在练习,那么为函数使用您自己的新名称是有意义的。这样你就可以用与原作相同的方式检查你的作品。在名字后面加个破折号,或者叫它mymap什么的

您还可以执行显式导入,以便不使用映射:

import Prelude hiding (map)

但我认为,在你的源代码开头加上这个名字能解决问题吗<代码>导入前奏隐藏(地图)哦,谢谢,它成功了!但是我的进口货和你的有什么区别呢?为什么要这样做?
Prelude
是隐式导入每个Haskell文件的模块。它还声明了一个
map
函数,这将触发错误。通过添加行,您正在导入
Prelude
,但在其中隐藏了
map
函数,从而避免了冲突好的,明白了。非常感谢。也许更好的解决方案是不同地调用您自己的实现,例如,
map':(a->b)->[a]->[b]
。在源代码的开头添加此选项是否解决了问题<代码>导入前奏隐藏(地图)哦,谢谢,它成功了!但是我的进口货和你的有什么区别呢?为什么要这样做?
Prelude
是隐式导入每个Haskell文件的模块。它还声明了一个
map
函数,这将触发错误。通过添加行,您正在导入
Prelude
,但在其中隐藏了
map
函数,从而避免了冲突好的,明白了。非常感谢。也许更好的解决方案是不同地调用您自己的实现,例如,
map':(a->b)->[a]->[b]