如何避免指数运算符默认实现,实现自定义指数运算?

2026-06-09 02:380阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计204个文字,预计阅读时间需要1分钟。

如何避免指数运算符默认实现,实现自定义指数运算?

我是Haskell的新手,编译以下代码时出现错误(^):

Int -> Int -> Int _ ^ 0=1x ^ n=x + x ^ (n - 1)

编译错误是:

Ambiguous occurrence of '^'

如何避免指数运算符默认实现,实现自定义指数运算?

我是haskell的新手,编译以下代码时出现错误(^)::Int-Int-Int_^0=1x^n=x

我是haskell的新手,编译以下代码时出现错误

(^) :: Int -> Int -> Int_ ^ 0 = 1x ^ n = x * (x ^ (n-1))

错误是这样的:

Ambiguous occurrence `^'It could refer toeither `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.


    本文共计204个文字,预计阅读时间需要1分钟。

    如何避免指数运算符默认实现,实现自定义指数运算?

    我是Haskell的新手,编译以下代码时出现错误(^):

    Int -> Int -> Int _ ^ 0=1x ^ n=x + x ^ (n - 1)

    编译错误是:

    Ambiguous occurrence of '^'

    如何避免指数运算符默认实现,实现自定义指数运算?

    我是haskell的新手,编译以下代码时出现错误(^)::Int-Int-Int_^0=1x^n=x

    我是haskell的新手,编译以下代码时出现错误

    (^) :: Int -> Int -> Int_ ^ 0 = 1x ^ n = x * (x ^ (n-1))

    错误是这样的:

    Ambiguous occurrence `^'It could refer toeither `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.