Ruby を調べていると、「until」と「unless」というキーワードが非常に興味深いことがわかりました。そこで、同様のキーワードを C/C++ に追加するにはどうすればよいか考えました。これは私が思いついたものです:
#define until(x) while(!(x))
#define unless(x) if(!(x))
これに関するいくつかの提案を探しています。誰かがより良い代替案を提案できますか?
これは、私が意図したことを説明するために書いたプログラムの例です。
#include <stdio.h>
#include <stdlib.h>
#define until(x) while(!(x))
#define unless(x) if(!(x))
unsigned int factorial(unsigned int n) {
unsigned int fact=1, i;
until ( n==0 )
fact *= n--;
return fact;
}
int main(int argc, char*argv[]) {
unless (argc==2)
puts("Usage: fact <num>");
else {
int n = atoi(argv[1]);
if (n<0)
puts("please give +ve number");
else
printf("factorial(%u) = %u\n",n,factorial(n));
}
return 0;
}
C または C++ で使用できる同様のトリックの参考文献をいくつか教えていただければ幸いです。