tnp1.sml
public text v1 · immutablefun col (n:Int64.int) x =
if n = 1 then (x+1)
else if (n mod 2) = 0 then (col(n div 2) x+1)
else (col(3*n +1) x+1);
fun collatz x = col x 0;
fun max a b =
if a > b then a
else b;
fun tnp a b c =
if a = b then c
else (tnp(a+1) b (max(collatz a) c));
fun tnp1 a b = tnp a b 1;