D言語のコンパイル時計算でフィボナッチ数
anarchy golf - Fibonacci Numbers ですがこんな感じになりました。
import std.metastrings; template f(int n){ static if(n<3) const f=1; else const f=f!(n-1)+f!(n-2); pragma(msg,Format!(f)); } const x=f!(46);
不要な空白文字や改行を削ると 133 byte です。フィボナッチ数の定義 f(n)=f(n-1)+f(n-2)、f(2)=f(1)=1 の通りに書いても時間内に計算が終わるのがかっこいい。
ところで
入力によって output を変えなければならない anarchy golf - delete blank lines が D-compile-time で解かれているのはなぜなんだろう。