gcc拡張関数型言語C
Cって関数型言語だったんだ。型推論もサポートとしたモダン言語だったんだね。
#include <stdio.h> int main(int argc, char** argv) { ({typeof( ({typeof(0) x = 0; printf("argv[$d] = %s\n", argv[x]); argv[x];}) ) s; ({typeof(0) x = 0; if(x < argc) while(true) { printf("argv[%d] = %s\n", x, argv[x]); typeof(s)& __s = argv[x]; ++x; if(!(x < argc)) { s = __s; break; } }}); printf("last argument = %s\n", s); }); /* var s = for(var x=0; x < argc; ++x) { printf("argv[$d] = %s\n", argv[x]); argv[x]; } printf("last argument = %s\n", s); */ }
コメント部分みたいに書けたらイケてるんじゃないか?
# typeofはC++0xで標準化されていた。thanks nyaxt