Re: Better RecursiveTask Example
Tim Peierls via Concurrency-interest <[email protected]> Wed, 24 Nov 2021 17:07:44 -0500
| Newsgroups | gmane.comp.java.jsr.166-concurrency |
|---|---|
| Message-ID | <CA+F8eeSz-YaVQfGjWvEp4P5NKB6Lf4qDR6-0LGniCBO7M39qBA@mail.gmail.com> |
--===============8887077068965950185== Content-Type: multipart/alternative; boundary="000000000000f8436405d19016cf" --000000000000f8436405d19016cf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Nov 24, 2021 at 4:14 PM Remi Forax via Concurrency-interest [email protected] <http://mailto:[email protected]> wrote: We can also use =E2=80=98var=E2=80=99, every declarations are aligned but i= t is perhaps harder to understand * protected BigInteger compute() { * if (from =3D=3D to) { // base case * return (from =3D=3D 0) ? BigInteger.ONE : BigInteger.valueOf(from); * } * var mid =3D (from + to) >>> 1; // split in half * var leftTask =3D new FactorialTask(from, mid).fork(); * var rightTask =3D new FactorialTask(mid + 1, to); * var right =3D rightTask.invoke(); // perform half the work locally * var left =3D leftTask.join(); * return left.multiply(right); * } It is *definitely *harder to understand. My brain is wired to look on the left for types. Lines that are all lower-case initial before an =3D don=E2= =80=99t look like sources of type information to me. =E2=80=94tim --000000000000f8436405d19016cf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"></div><div class=3D"markdown-here-wrapper= " style=3D""><p style=3D"margin:0px 0px 1.2em!important">On Wed, Nov 24, 20= 21 at 4:14 PM Remi Forax via Concurrency-interest <a href=3D"http://mailto:= [email protected]">[email protected]</a> = wrote:</p> <blockquote style=3D"margin:1.2em 0px;border-left:4px solid rgb(221,221,221= );padding:0px 1em;color:rgb(119,119,119);quotes:none"> <p style=3D"margin:0px 0px 1.2em!important">We can also use =E2=80=98var=E2= =80=99, every declarations are aligned but it is perhaps harder to understa= nd</p> </blockquote> <pre style=3D"font-size:0.85em;font-family:Consolas,Inconsolata,Courier,mon= ospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style=3D"fon= t-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px= 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234= ,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;wh= ite-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,= 204);padding:0.5em 0.7em;display:block!important">* protected BigInteger = compute() { * if (from =3D=3D to) { // base case * return (from =3D=3D 0) ? BigInteger.ONE : BigInteger.valueOf(from); * } * var mid =3D (from + to) >>> 1; // split in half * var leftTask =3D new FactorialTask(from, mid).fork(); * var rightTask =3D new FactorialTask(mid + 1, to); * var right =3D rightTask.invoke(); // perform half the work locally * var left =3D leftTask.join(); * return left.multiply(right); * } </code></pre><p style=3D"margin:0px 0px 1.2em!important">It is <b>definitel= y </b>harder to understand. My brain is wired to look on the left for types= . Lines that are all lower-case initial before an <code style=3D"font-size:= 0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em= ;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);b= ackground-color:rgb(248,248,248);border-radius:3px;display:inline">=3D</cod= e> don=E2=80=99t look like sources of type information to me.</p> <p style=3D"margin:0px 0px 1.2em!important">=E2=80=94tim</p> <div title=3D"MDH:PGRpdiBkaXI9Imx0ciIgZ21haWxfb3JpZ2luYWw9IjEiPk9uIFdlZCwgT= m92IDI0LCAyMDIxIGF0 IDQ6MTQgUE0gUmVtaSBGb3JheCB2aWEgQ29uY3VycmVuY3ktaW50ZXJlc3QgJmx0O2NvbmN1cnJ= l bmN5LWludGVyZXN0QGNzLm9zd2Vnby5lZHUmZ3Q7IHdyb3RlOjwvZGl2PjxkaXYgZGlyPSJsdHI= i IGdtYWlsX29yaWdpbmFsPSIxIj4mZ3Q7IFdlIGNhbiBhbHNvIHVzZSAndmFyJywgZXZlcnkgZGV= j bGFyYXRpb25zIGFyZSBhbGlnbmVkIGJ1dCBpdCBpcyBwZXJoYXBzIGhhcmRlciB0byB1bmRlcnN= 0 YW5kPC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj5= g YGA8L2Rpdj4qICZuYnNwOyBwcm90ZWN0ZWQgQmlnSW50ZWdlciBjb21wdXRlKCkgezxicj4qICZ= u YnNwOyAmbmJzcDsgaWYgKGZyb20gPT0gdG8pIHsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A= 7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7IC8vIGJhc2UgY2FzZTxicj4qICZuYnNwOyAmbmJzcDsgJm5= i c3A7IHJldHVybiAoZnJvbSA9PSAwKSA/IEJpZ0ludGVnZXIuT05FIDogQmlnSW50ZWdlci52YWx= 1 ZU9mKGZyb20pOzxicj4qICZuYnNwOyAmbmJzcDsgfTxicj4qICZuYnNwOyAmbmJzcDsgdmFyIG1= p ZCA9IChmcm9tICsgdG8pICZndDsmZ3Q7Jmd0OyAxOyAmbmJzcDsgJm5ic3A7Ly8gc3BsaXQgaW4= g aGFsZjxicj4qICZuYnNwOyAmbmJzcDsgdmFyIGxlZnRUYXNrID0gbmV3IEZhY3RvcmlhbFRhc2s= o ZnJvbSwgbWlkKS5mb3JrKCk7PGJyPiogJm5ic3A7ICZuYnNwOyB2YXIgcmlnaHRUYXNrID0gbmV= 3 IEZhY3RvcmlhbFRhc2sobWlkICsgMSwgdG8pOzxicj4qICZuYnNwOyAmbmJzcDsgdmFyIHJpZ2h= 0 ID0gcmlnaHRUYXNrLmludm9rZSgpOyAvLyBwZXJmb3JtIGhhbGYgdGhlIHdvcmsgbG9jYWxseTx= i cj4qICZuYnNwOyAmbmJzcDsgdmFyIGxlZnQgPSBsZWZ0VGFzay5qb2luKCk7PGJyPiogJm5ic3A= 7 ICZuYnNwOyByZXR1cm4gbGVmdC5tdWx0aXBseShyaWdodCk7PGJyPiogJm5ic3A7IH08ZGl2PmB= g YDxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pkl0IGlzIGRlZmluaXRlbHkgaGFyZGVyIHR= v IHVuZGVyc3RhbmQuIE15IGJyYWluIGlzIHdpcmVkIHRvIGxvb2sgb24gdGhlIGxlZnQgZm9yIHR= 5 cGVzLiBMaW5lcyB0aGF0IGFyZSBhbGwgbG93ZXItY2FzZSBpbml0aWFsIGJlZm9yZSBhbiBgPWA= g ZG9uJ3QgbG9vayBsaWtlIHNvdXJjZXMgb2YgdHlwZSBpbmZvcm1hdGlvbiB0byBtZS48L2Rpdj4= 8 ZGl2Pjxicj48L2Rpdj48ZGl2Pi0tdGltPC9kaXY+PGRpdj48L2Rpdj48L2Rpdj4=3D" style= =3D"height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em= ;padding:0;margin:0"></div></div><div class=3D"gmail_quote"><div><br></div>= </div></div> --000000000000f8436405d19016cf-- --===============8887077068965950185== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Concurrency-interest mailing list [email protected] http://cs.oswego.edu/mailman/listinfo/concurrency-interest --===============8887077068965950185==--