From 95fdbf7abf8f35ce1c2e790b8d8b7bdcbdac294e Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Wed, 16 Apr 2025 07:53:28 +0200 Subject: [PATCH] added assignment 7 ex 4 --- src/Assignment7/Ex4.sc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/Assignment7/Ex4.sc diff --git a/src/Assignment7/Ex4.sc b/src/Assignment7/Ex4.sc new file mode 100644 index 0000000..cef38fe --- /dev/null +++ b/src/Assignment7/Ex4.sc @@ -0,0 +1,19 @@ + +def THRESHOLD: Double = 0.0001 + +def sqr(x: Double): Double = x * x + +def sqrt_stream(value: Double): LazyList[Double] = { + def helper(target: Double, approx: Double): LazyList[Double] = { + approx #:: helper(target, approx - (sqr(approx) - target) / (2 * approx)) + } + helper(value, value) +} + +sqrt_stream(2).take(10).toList + +def threshold(list: LazyList[Double], thresh: Double) = { + list.zip(list.drop(1)).filter(p => math.abs(p._2 - p._1) < thresh).head._2 +} + +threshold(sqrt_stream(2), 1e-15) \ No newline at end of file