为什么此代码会导致"模糊变量发生"错误?

XIA*_*ang 0 syntax haskell

我写了一个函数叫product:

product [] = 1
product (x:xs) = x * product xs
Run Code Online (Sandbox Code Playgroud)

当我将其加载到WinHug中时:

错误文件:.\ product.hs:4 - 模糊变量发生"产品"
***可参考:Main.product Hugs.Prelude.product

这是什么意思?

Don*_*art 15

product函数在Haskell Prelude中定义.

您的本地定义与库版本冲突.

考虑将您的版本重命名为eg myproductimport Prelude hiding (product).

此外,您可能需要考虑使用GHC而不是Hugs.


dfl*_*str 8

已经有一个productHaskell Prelude中命名的函数.

顺便说一下,你应该安装Haskell平台而不是Hugs; Hugs是一个不再被维护的旧项目,GHC/i得到更好的支持并具有更多功能.即使你的学校希望你使用Hugs,私下秘密使用Haskell平台和GHCi也没什么坏处.