Tôi nghĩ rằng điều tra vô hạn là rất thuận tiện cho việc viết các tập lệnh kiểu FP nhưng tôi vẫn chưa tìm được cách thoải mái để xây dựng cấu trúc như vậy trong Ruby.Cách nhanh nhất để diễn tả điều tra vô hạn `(1.Inf)` trong Ruby là gì?
Tôi biết tôi có thể xây dựng nó một cách rõ ràng:
a = Enumerator.new do |y|
i = 0
loop do
y << i += 1
end
end
a.next #=> 1
a.next #=> 2
a.next #=> 3
...
nhưng đó là annoyingly dài dòng cho một cấu trúc đơn giản như vậy.
Một cách khác là sắp xếp của một "hack" của việc sử dụng Float::INFINITY
:
b = (1..Float::INFINITY).each
b = (1..1.0/0.0).each
Hai có lẽ là giải pháp vụng về nhất tôi có thể cung cấp. Mặc dù tôi muốn biết nếu có một số cách khác thanh lịch hơn để xây dựng các điều tra vô hạn. (Nhân tiện, tại sao Ruby không chỉ làm cho inf
hoặc infinity
như một chữ cho Float::INFINITY
?)
Cảm ơn. Tôi không biết về 'lười biếng'. Dường như là một cách tuyệt vời để bắt chước các nguyên tắc FP tốt hơn. – trVoldemort