В больше рубинового способа выполнения проекта euler # 2, часть кода
while((v = fib(i)) < 4_000_000)
s+=v if v%2==0
i+=1
end
Есть ли способ изменить i += 1
на конструкцию более функционального стиля программирования?
Лучшее, что я могу придумать, -
Float::MAX.to_i.times do |i|
v = fib(i)
break unless v < 4_000_000
s += v if v%2==0
end
потому что вы не можете вызвать .times
по числу с плавающей запятой.