なんかオレオレ言語が流行ってるみたいなので、参加してみる。 #include <stdio.h> #include <stdlib.h> #define define(ret, name, args, block) \ ret name args { return block; } #define if(expr, block1, block2) expr ? block1 : block2 #define eq(a, b) a == b #define sub(a, b) a - b #define scale(a, b) a * b define(int, fact, (int n), if(eq(n, 0), 1, scale(n, fact(sub(n, 1))))) define(int, main, (void), (printf("%d", fact(10)), EXIT_S