function jazr (x, guess=1.0) {
let threshold = x / 1e6
let average = (x, y) => (x+y)/2
let goodEnough = (x, guess) => Math.abs(guess*guess - x) < threshold
let improve = (x, guess) => average(guess, x/guess)
if (x == 0.0) return 0.0
else if (goodEnough(x, guess)) return guess;
else return jazr(x, improve(x, guess))
}