mers/examples/05_Greatest_Common_Divisor.mers

31 lines
599 B
Plaintext
Raw Normal View History

2023-10-27 13:50:26 +02:00
gcd := vals -> {
() -> {
(a, b) := vals
if (a, b).eq
(a)
else if ((a, b).diff.signum, 1).eq
&vals = (a, (a, b).diff)
else
&vals = ((b, a).diff, b)
}
}.loop
get_num := () -> {
line := ().read_line.trim
(
line.parse_float,
(
() -> {
("error: '", line, "' not a number!").concat.println
1.panic
}
n -> n,
)
).try
}
("gcd of 899 and 2900 is ", (899, 2900).gcd).concat.println // 29
"Now type two numbers!".println
(a, b) := (().get_num, ().get_num)
("gcd of ", a, " and ", b, " is ", (a, b).gcd).concat.println