使用eclipse时在scala中键入不匹配

时间:2014-05-13 07:07:19

标签: eclipse scala

package week1
import math.abs
object newton {
    def abs(x:Double) = if (x < 0) -x else x

    def sqrtIter(guess: Double, x: Double): Double =
        if (isGoodEnough(guess, x)) guess
        else sqrtIter(improve(guess, x), x)

    def isGoodEnough(guess: Double, x: Double)=
        abs(guess*guess - x  < 0.001)

    def improve(guess: Double, x: Double) =
        (guess + x/guess)/2

    def sqrt (x:Double)= sqrtIter(1.0,x)

}

在第

abs (guess*guess - x <0.001)

eclipse显示以下错误

  

类型不匹配; found:需要布尔值:Double newton.sc / progfun / src / week1第10行Scala问题

我该如何解决这个问题?这是我第一次运行scala,我正在使用Coursera中目前正在进行的Functional Programmming类的确切代码。

1 个答案:

答案 0 :(得分:3)

这一行

abs (guess*guess - x <0.001)

返回一个布尔值,因为它首先计算guess * guess - x,然后将其与0.001进行比较。

你应该这样做

abs (guess*guess - x) < 0.001