FizzBuzz問題ゴルフ

コードゴルフRubyはつくづく不利だなと思った.

  • 0は真
  • 空文字列は真

これだけで結構増えるよね.
で,精一杯頑張ってみた結果.

puts (1..100).map{|n|(s=(n%3<1 ?'Fizz':'')+(n%5<1 ?'Buzz':''))=~/^$/ ? n:s}

シンタックスハイライト,バグってるし.
wcの結果.

$ wc fizbuz.rb
 1  6 76 fizbuz.rb

今のところ,これが限界.

使ったテク

  • %の結果は0以上という性質を使用して,==0のところを<1にして一文字節約
  • 空文字列の判定は.empty?よりも=~/^$/のほうが一文字節約できる

もっと節約できるかしら