2021-11-03から1日間の記事一覧

いまどきの Ruby なフィボナッチ数列

Enumerator.produceを使います。 fib = Enumerator.produce([1, 1]) { |a, b| [b, a + b] }.lazy.map(&:first) #最初の10個 fib.first(10) #=>[1, 1, 2, 3, 5, 8, 13, 21, 34, 55] #数列の100以上3000未満の部分 fib.drop_while { _1 < 100 }.take_while { _…

Ruby 的に自然な FizzBuzz

まことに FizzBuzz の種は盡きまじ。 fizzbuzz = Enumerator.new {|y| (1..).each do |i| f = (i % 3).zero? b = (i % 5).zero? y << case when f && b then "FizzBuzz" when f then "Fizz" when b then "Buzz" else i.to_s end end } puts fizzbuzz.take(40…