M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

クラス RecursiveTask<V>

こういうコードブロックを見ると混乱してしまう自分は、並列分散処理にも関数型言語にも苦手意識を持つ。それにしてもこのコードブロック、『徹底攻略 Upgrade to Java SE7 Programmer 問題集[1Z0-805]対応』にそのまま転載されているんだけれど、これっていいのかな?(そう言いながら自分も転載しているわけだけど・・・。つまり、営利目的うんぬんに関して・・・。)

 class Fibonacci extends RecursiveTask<Integer> {
   final int n;
   Fibonacci(int n) { this.n = n; }
   Integer compute() {
     if (n <= 1)
        return n;
     Fibonacci f1 = new Fibonacci(n - 1);
     f1.fork();
     Fibonacci f2 = new Fibonacci(n - 2);
     return f2.compute() + f1.join();
   }
 }