Hatena::Grouprubyist

Going My Ruby Way このページをアンテナに追加 RSSフィード

Ruby ロゴ (C) Ruby Association LLC

2012年04月03日(火)

FizzBuzz その2

| 18:49 | FizzBuzz その2 - Going My Ruby Way を含むブックマーク はてなブックマーク - FizzBuzz その2 - Going My Ruby Way FizzBuzz その2 - Going My Ruby Way のブックマークコメント

FizzBuzz について、その2。

新案。この方が素直?

gen = -> s,n { -> count { s if count % n == 0 } }  # 構文は Ruby1.9
fizz = gen['Fizz', 3]
buzz = gen['Buzz', 5]
ans = (1..100).map {|n| "#{fizz[n]}#{buzz[n]}".sub(/^$/) { n } }

オープンクラスででも、できなくはない。

class Numeric
  def fizzbuzz ; 'FizzBuzz' if self % 15 == 0 ; end
  def fizz     ; 'Fizz'     if self %  3 == 0 ; end
  def buzz     ; 'Buzz'     if self %  5 == 0 ; end
end

ans = (1..100).map {|n| n.fizzbuzz || n.fizz || n.buzz || n }

前の日記

何故か、前は一つの式にまとめるのにこだわってたようです。