Penso che l'enumeratore infinito sia molto conveniente per scrivere script in stile FP ma non ho ancora trovato un modo comodo per costruire tale struttura in Ruby.Qual è il modo più veloce di esprimere l'infinito enumeratore `(1..Inf)` in Ruby?
so di poter costruire in modo esplicito:
a = Enumerator.new do |y|
i = 0
loop do
y << i += 1
end
end
a.next #=> 1
a.next #=> 2
a.next #=> 3
...
ma questo è fastidiosamente verboso per una struttura così semplice.
Un altro approccio è una sorta di "hack" di usare Float::INFINITY
:
b = (1..Float::INFINITY).each
b = (1..1.0/0.0).each
Questi due sono probabilmente la soluzione meno goffo che posso dare. Anche se mi piacerebbe sapere se ci sono altri modi più eleganti di costruire infiniti enumeratori. (A proposito, perché non basta fare Rubino inf
o infinity
come letterale Float::INFINITY
?)
Grazie. Non sapevo di "pigro". Sembra essere un ottimo modo per simulare meglio i principi FP. – trVoldemort