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 =
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 [ ] (
(* compute only sequence length *)
let haillen n =
let one =
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 (
(* max length for starting values in 1..n *)
|