Least likely to compile successfully
もっともコンパイルできなさそう
受賞者:Ian Phillipps
引用元:https://www.ioccc.org/1988/phillipps.c
審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/1988/phillipps.hint
動作
クリスマスの12日間の歌詞を表示する。
$ gcc -o phillipps phillipps.c
$ ./phillipps
On the first day of Christmas my true love gave to me
a partridge in a pear tree.
On the second day of Christmas my true love gave to me
two turtle doves
and a partridge in a pear tree.
On the third day of Christmas my true love gave to me
three french hens, two turtle doves
and a partridge in a pear tree.
...
On the twelfth day of Christmas my true love gave to me
twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
解説
プログラムはreturn <expr>;
の1文だけであるが、返り値の式の中でおそろしいほど複雑にmain
関数を再帰呼び出ししている。
全体的な見た目は、古いプリンタの壊れた出力のよう(phillipps.hintには「古いタイプライターのキーを適当に叩いた感じに見えた」とある)。
出力をcompressで圧縮したよりも小さいコードになっているとのこと。
意味ありげに"%s %s %d\n"
などと書いてあるが、printf
は使っていないのでフェイントだと思う。おしゃれ。
clangはmain
の第2引数と第3引数がchar**
でないと怒るので、書き換えが必要。