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) &gt;&gt;&gt; 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==--