GCD

Grand Central Dispatch のブロックでYコンビネータを書いてみた (3)

GCD

前回のまた続き。 これはYコンビネータなのか。 今度はYコンビネータに与える関数のカリー化を解いた。こうしたら再帰するために呼び出すブロックを記憶せずにすむ。そしてプログラム本体も、とても簡潔になった。 typedef int (^int2int)(int); // Haskell…

Grand Central Dispatch のブロックでYコンビネータを書いてみた (2)

GCD

前回の続き。Yコンビネータで再帰することをやめたら効率が上がったと思う int2int YCombinator(Yfunc f) { printf("Y copy\n"); __block int2int y; y = Block_copy(^(int x) { int2int g = f(y); int val = g(x); Block_release(g); printf("F release\n")…

Grand Central Dispatch のブロックでYコンビネータを書いてみた

GCD

id:amachang:20080124:1201199469 id:tanakh:20040813はてなの先輩方に影響を受けて、Yコンビネータ書いてみた。 ブロック構文 C にクロージャのようなものを追加する Grand Central Dispatch - blog.8-p.infoブロックについてはこちらのページが参考になっ…