sort

sort が終了になり公開されたが、C の aglias さんの解が凄すぎる。qsort() のコンパレーターとして、文字列を渡してる。これ、コンパレーターの機械コードだ。ちょっと実験してみた。

main(a,b,c){
    int(*f)()="YXZQQQ\x8b\x00+\x02\xc3";
    a=10;b=20;c=f(&a,&b);printf("%d %d %d\n",a,b,c);
    a=20;b=10;c=f(&a,&b);printf("%d %d %d\n",a,b,c);
    a=30;b=30;c=f(&a,&b);printf("%d %d %d\n",a,b,c);
}

としたところ、

10 20 -10\n
20 10 10\n
30 30 0

と出力された。凄すぎる。今後は、機械語で書いてそれを呼び出す、という方法で、C ゴルフは短い解が得られるかも。う〜む。ハードル高くなるな。