RosettaCodeData/Task/Hailstone-sequence/Oforth/hailstone-sequence.fth
2023-07-01 13:44:08 -04:00

8 lines
302 B
Forth

: hailstone // n -- [n]
| l |
ListBuffer new ->l
while(dup 1 <>) [ dup l add dup isEven ifTrue: [ 2 / ] else: [ 3 * 1+ ] ]
l add l dup freeze ;
hailstone(27) dup size println dup left(4) println right(4) println
100000 seq map(#[ dup hailstone size swap Pair new ]) reduce(#maxKey) println