8 lines
268 B
Plaintext
8 lines
268 B
Plaintext
let iter = ((x,y) : (nat, nat)) : (bool, (nat, nat)) =>
|
|
if (y == 0n) { stop ((x,y)); } else { continue ((y, x mod y)); };
|
|
|
|
let gcd = ((x,y) : (nat, nat)) : nat =>
|
|
let (x,y) = if (x < y) { (y,x); } else { (x,y); };
|
|
let (x,y) = Loop.fold_while (iter, (x,y));
|
|
x;
|