在Haskell中,获取实数的最直接方法是什么?

时间:2015-11-16 16:08:10

标签: haskell

我想在Haskell中采用数字的立方根(实际上是GHCi)。在类似Java的东西中,我只是做Math.Pow( x, 1.0/3.0)并继续前进,但我没有看到在Haskell中这么容易做到的方法。

那么,是否有一些简单的习惯用法来取任意实数的任意根?

1 个答案:

答案 0 :(得分:6)

AFAIK,没有在标准库中计算第n个根的功能。但是你可以使用Java中相同的pow方法

nroot :: Floating a => Int -> a -> a
nroot n x = x ** (1.0 / fromIntegral n)

甚至更具惯用性:

nroot n x = x ** recip n

示例:

nroot 4 81.0  -- returns 3.0

**运算符相当于Java的Math.pow,并且需要fromIntegral将n从int转换为浮点值