RosettaCodeData/Task/Nth-root/Langur/nth-root.langur
2024-04-19 16:56:29 -07:00

19 lines
505 B
Text

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 .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)