我是haskell的新手,在编译以下代码时出错
(^) :: Int -> Int -> Int
_ ^ 0 = 1
x ^ n = x * (x ^ (n-1))
错误是:
Ambiguous occurrence `^'
It could refer to
either `Prelude.^',
imported from `Prelude' at test.lhs:1:1
(and originally defined in `GHC.Real')
or `Main.^', defined at test.lhs:107:5
长话短说,Prelude
已经有了这个函数,而您正在重新定义它,所以编译器不知道该选择哪一个。
如果你放
import Prelude hiding ((^))
在文件的顶部,您将通过对Prelude
隐藏另一个来解决有利于您的定义的歧义。