D言語を少し触ってみたので.
import std.conv; template fizzbuzz(int n) { static if (n == 0) { immutable string fizzbuzz = ""; } else { immutable string fizzbuzz = fizzbuzz!(n-1) ~ ( n%15 == 0 ? "FizzBuzz" : n%3 == 0 ? "Fizz" : n%5 == 0 ? "Buzz" : to!string(n) ) ~ "\n"; } } import std.stdio; void main() { writeln( fizzbuzz!(100) ); }
コンパイル時に普通に文字列を扱えるのと,static if のおかげでかなり分かりやすく簡潔に書けますね.
( C++: 2011-10-02 - sorry, unimplemented: )