Hailstone sequence: Difference between revisions

m
→‎{{header|OCaml}}: num_of_int x -> Int x, more readable
m (→‎{{header|PL/I}}: Scrolled long output, removed incorrect flag)
m (→‎{{header|OCaml}}: num_of_int x -> Int x, more readable)
Line 220:
(* generate Hailstone sequence *)
let hailstone n =
let one = num_of_intInt 1 and two = num_of_intInt 2 and three = num_of_intInt 3 in
let rec g s x = if x =/ one then x::s else
g (x::s) (if mod_num x two =/ one then three */ x +/ one else x // two) in
g [ ] (num_of_intInt n);;
 
(* compute only sequence length *)
let haillen n =
let one = num_of_intInt 1 and two = num_of_intInt 2 and three = num_of_intInt 3 in
let rec g s x = if x =/ one then s+1 else
g (s+1) (if mod_num x two =/ one then three */ x +/ one else x // two) in
g 0 (num_of_intInt n);;
 
(* max length for starting values in 1..n *)
506

edits