Hatena::Grouptenmon

ひこにっき

 | 

2010.05.12

Blocks

16:41

http://unknownplace.org/memo/2010/05/11/1/

#include <stdio.h>

int main(int argc, char** argv) {
	int n = atoi( argv[1] );
	if ( n < 0 ) return 0;

	__block int (^fib)(int);
	fib = ^(int m){
		return m == 0 ? 0 : m == 1 ? 1 : fib(m-1) + fib(m-2);
	};
	printf("fib(%d) = %d\n", n, fib(n));
		
	return 0;
}
$ gcc foo.c && ./a.out 10
55

ふうん。面白い。

トラックバック - http://tenmon.g.hatena.ne.jp/aql/20100512
 |