Я украл свой титул из этого сообщения: Выполняет функцию, пока не вернет нуль, собирая его значения в списке
Этот вопрос относится к Lisp и, честно говоря, над моей головой. Тем не менее, я думаю, что его вопрос, переведенный на Ruby, - это точно мое:
Какой лучший способ создать условный цикл в [Ruby], который выполняет функцию до тех пор, пока не вернет NIL, когда он собирает возвращаемые значения в список?
Мой текущий, неуклюжий подход:
def foo
ret = Array.new
x = func() # parenthesis for clarity (I'm not a native Ruby coder...)
until x.nil?
ret << x
x = func()
end
ret
end
Этот фрагмент кода будет делать то, что я хочу... но я знаю, что есть более чистый, более идиоматический подход Ruby... правильно?