fun collatz (n: Int64.int,length) = if (n = 1) then length + 1 else if (n mod 2) = 0 then collatz ((n div 2),length + 1) else collatz ((3 * n + 1),length + 1); fun max (a,b) = if (a > b) then a else b; fun loop (i,j,max_cycle) = if (i = j) then max_cycle else loop (i+1,j,max(collatz(i,0),max_cycle)); fun tnp1 i j = loop (i,j,0);