Executable library: Difference between revisions

Content added Content deleted
Line 2,138: Line 2,138:
while (n > 1) {
while (n > 1) {
take(n)
take(n)
n = (n.is_even ? n/2 : (3*n + 1))
n = (n.is_even ? (n/2) : (take(3*n + 1)/2))
}
}
take(1)
take(1)
}
}
}
}

 
if (__FILE__ == __MAIN__) { # true when not imported
if (__FILE__ == __MAIN__) { # true when not imported
var seq = hailstone(27)
var seq = hailstone(27)
say "hailstone(27) - #{seq.len} elements: #{seq.ft(0, 3)} [...] #{seq.ft(-4)}"
say "hailstone(27) - #{seq.len} elements: #{seq.first(4)} [...] #{seq.last(4)}"

 
var n = 0
var n = 0
var max = 0
var max = 0
Line 2,157: Line 2,157:
}
}
}
}

 
say "Longest sequence is for #{n}: #{max}"
say "Longest sequence is for #{n}: #{max}"
}</syntaxhighlight>
}</syntaxhighlight>