fun col n x = if x = 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 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 0;