Hailstone sequence: Difference between revisions
Content deleted Content added
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 *)
|