blob: 5ad17186191245bbc07b2e1f7ba9bcaf171a53ff (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
object test {
def abs(x: Double) = if (x >= 0) x else 0 - x;
def square(x: Double) = x * x;
def sqrt(x: Double) = {
def sqrtIter(guess: Double): Double =
if (isGoodEnough(guess)) guess
else sqrtIter(improve(guess));
def improve(guess: Double) =
(guess + x / guess) / 2;
def isGoodEnough(guess: Double) =
abs(square(guess) - x) < 0.001;
sqrtIter(1.0);
}
}
|