我想在Haskell(实际上是GHCi)中取数字的立方根。在Java之类的程序中,我只需要做Math.Pow( x, 1.0/3.0)
并继续前进,但是在Haskell中我看不出有这么简单的方法。
那么,是否存在一些简单的成语来取任意实数的任意根?
最佳答案
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从整数转换为浮点值