RosettaCodeData/Task/Nth-root/Langur/nth-root.langur

20 lines
483 B
Plaintext

writeln "operator"
writeln (7131.5 ^ 10) ^/ 10
writeln 64 ^/ 6
writeln()
val nthroot = fn(n, A, p) {
var x = [A, A / n]
while abs(x[2]-x[1]) > p {
x = [x[2], ((n-1) * x[2] + A / (x[2] ^ (n-1))) / n]
}
simplify x[2]
}
# To make the example from the D language work, we set a low maximum for the number of digits after a decimal point in division.
mode divMaxScale = 7
writeln "function"
writeln nthroot(10, 7131.5 ^ 10, 0.001)
writeln nthroot(6, 64, 0.001)