DEV Community

Discussion on: Lazy FizzBuzz

Collapse
 
quanon profile image
QUANON

I thought up more declarative one.

def say(fizzbuzz)
  def fizzbuzz.for_multiples_of(number)
    loop.lazy.flat_map { [*Array.new(number - 1, nil), self] }
  end

  fizzbuzz
end

fizzes = say('Fizz').for_multiples_of(3)
buzzes = say('Buzz').for_multiples_of(5)