FizzBuzzってこんな感じでしったー?
流行に遅れましたが…
つまらないことでもアウトプットしていこうかなとか
とりあえず、ループ使わない、剰余演算子使わない縛り
あれ?mapと再起って広義ではループなのか?
map { print fizz($_) . buzz($_) || $_, $/ } (1 .. 100); sub fizz { my $i = shift; $i < 1 && return $i ? q{} : 'Fizz'; (caller(0))[3]($i -= 3); } sub buzz { my $i = shift; $i < 1 && return $i ? q{} : 'Buzz'; (caller(0))[3]($i -= 5); }
追記: もういっこ。仕事では使えませんね
my ($i, $fizz, $buzz, $max) = (1, 3, 5, 100); FizzBuzz: { print q{} . (--$fizz ? q{} : 'fizz') . (--$buzz ? q{} : 'buzz') || $i, $/ and (($fizz, $buzz) = ($fizz || 3, $buzz || 5)) and $max > $i++ && redo; }