me robaron mi título de este post: Executes a function until it returns a nil, collecting its values into a listidiomático Ruby - Ejecución de las funciones hasta que se devuelve un nulo, la recopilación de sus valores en una lista
Esa pregunta se refiere a Lisp y es, francamente, por encima de mi cabeza. Sin embargo, creo que su pregunta - traducido en Rubí - es exactamente mi propia:
Cuál es la mejor manera de crear un bucle condicional en [rubíes] que ejecuta una función hasta que vuelve NIL momento en el cual recoge los valores devueltos en una lista?
Mi enfoque torpe actual es la siguiente:
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
Este fragmento de código hará lo que yo quiero ... pero sé que es un limpiador, más idiomáticamente enfoque Rubí ... ¿verdad?
estaría interesado si se pudiera proporcionar un caso en el mundo real, donde se utilizaría un procedimiento de este tipo. – Phrogz
@Phrogz Esto suena como un generador iterable para mí, y es un patrón de diseño común, especialmente en programas funcionales. –