Я думаю, это то, что вы пытаетесь сделать:
def recurse(x, a = [])
a << x
return a if x == 1
if x % 2 == 0
recurse(x/2, a)
else
recurse((x*3 + 1)/2, a)
end
end
recurse 7
=> [7, 11, 17, 26, 13, 20, 10, 5, 8, 4, 2, 1]
recurse 12
=> [12, 6, 3, 5, 8, 4, 2, 1]