我想在Haskell中采用数字的立方根(实际上是GHCi)。在类似Java的东西中,我只是做Math.Pow( x, 1.0/3.0)
并继续前进,但我没有看到在Haskell中这么容易做到的方法。
那么,是否有一些简单的习惯用法来取任意实数的任意根?
答案 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转换为浮点值