<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <div class="markdown-here-wrapper" data-md-url="" style="">
      <p style="margin: 0px 0px 1.2em !important;">We have added this to
        21, in the form of an “or” instance method:</p>
      <p style="margin: 0px 0px 1.2em !important;"><a href="https://git.openjdk.org/jdk/pull/13954" class="moz-txt-link-freetext">https://git.openjdk.org/jdk/pull/13954</a></p>
      <p style="margin: 0px 0px 1.2em !important;">So:</p>
      <pre style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="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); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block !important;">SymbolLookup MY_LOOKUP = libraryLookup("lib1", arena)
    .or(libraryLookup("lib2", arena))
    .or(libraryLookup("lib3", arena))
    .or(libraryLookup("lib4", arena))
    ...
    .or(libraryLookup("libN", arena));
</code></pre>
      <p style="margin: 0px 0px 1.2em !important;">Cheers<br>
        Maurizio</p>
      <p style="margin: 0px 0px 1.2em !important;">On 10/05/2023 15:26,
        Michael Hall wrote:</p>
      <blockquote style="margin: 1.2em 0px;border-left: 4px solid
        rgb(221, 221, 221); padding: 0px 1em; color: rgb(119, 119, 119);
        quotes: none;">
        <blockquote style="margin: 1.2em 0px;border-left: 4px solid
          rgb(221, 221, 221); padding: 0px 1em; color: rgb(119, 119,
          119); quotes: none;">
          <p style="margin: 0px 0px 1.2em !important;">On May 10, 2023,
            at 8:52 AM, Maurizio Cimadamore</p>
          <p style="margin: 0px 0px 1.2em !important;"><a href="http://mailto:maurizio.cimadamore@oracle.com">maurizio.cimadamore@oracle.com</a>
            wrote:</p>
          <p style="margin: 0px 0px 1.2em !important;">On 10/05/2023
            14:05, Michael Hall wrote:</p>
          <blockquote style="margin: 1.2em 0px;border-left: 4px solid
            rgb(221, 221, 221); padding: 0px 1em; color: rgb(119, 119,
            119); quotes: none;">
            <p style="margin: 0px 0px 1.2em !important;">Basically
              you’re saying you need a length 5 chain that needs to<br>
              be searched for the leaf? Yes, ultimately you would at
              some<br>
              point. Possibly you would be over working a lambda? I
              thought it<br>
              might be more a convenience to the developer if they have
              a<br>
              collection of Path’s they could specify them in one
              invocation of<br>
              libraryLookup and the api would manage the necessary
              multiple<br>
              SymbolLookup’s searching for the leaf. The developer can
              of<br>
              course manage this themselves although again at some point
              maybe<br>
              not with a lambda.</p>
            <p style="margin: 0px 0px 1.2em !important;">What I’m saying
              is this:</p>
          </blockquote>
          <p style="margin: 0px 0px 1.2em !important;"><code style="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); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">SymbolLookup MY_LOOKUP = SymbolLookup.compose( 
libraryLookup("lib1", arena), libraryLookup("lib2", arena), 
libraryLookup("lib3", arena), libraryLookup("lib4", arena), ... 
libraryLookup("libN", arena));</code></p>
          <p style="margin: 0px 0px 1.2em !important;">Doesn’t seem bad.
            You get back a single lookup, which is then used<br>
            to perform several lookups. If we can achieve same behavior
            via<br>
            simple composition, that seems better/more flexible to me.
            Symbol<br>
            lookups are created once (at the start of your application)
            and<br>
            then “forgot”, so I don’t think there’s a lot of value in
            making<br>
            the above more succinct (at the expense of API regularity).</p>
          <p style="margin: 0px 0px 1.2em !important;">Maurizio</p>
          <p style="margin: 0px 0px 1.2em !important;">Ah, sorry, hadn’t
            seen compose yet. No, not bad at all.</p>
        </blockquote>
        <p style="margin: 0px 0px 1.2em !important;">Thanks, Mike</p>
      </blockquote>
      <div title="MDH:V2UgaGF2ZSBhZGRlZCB0aGlzIHRvIDIxLCBpbiB0aGUgZm9ybSBvZiBhbiAib3IiIGluc3RhbmNlIG1ldGhvZDo8YnI+PGJyPmh0dHBzOi8vZ2l0Lm9wZW5qZGsub3JnL2pkay9wdWxsLzEzOTU0PGJy
Pjxicj5Tbzo8YnI+PGJyPmBgYDxicj5TeW1ib2xMb29rdXAgTVlfTE9PS1VQID0gbGlicmFyeUxv
b2t1cCgibGliMSIsIGFyZW5hKTxicj7CoMKgwqAgLm9yKGxpYnJhcnlMb29rdXAoImxpYjIiLCBh
cmVuYSkpPGJyPsKgwqDCoCAub3IobGlicmFyeUxvb2t1cCgibGliMyIsIGFyZW5hKSk8YnI+wqDC
oMKgIC5vcihsaWJyYXJ5TG9va3VwKCJsaWI0IiwgYXJlbmEpKTxicj7CoMKgwqAgLi4uPGJyPsKg
wqDCoCAub3IobGlicmFyeUxvb2t1cCgibGliTiIsIGFyZW5hKSk7PGJyPmBgYDxicj48YnI+Q2hl
ZXJzPGJyPk1hdXJpemlvPGJyPjxicj5PbiAxMC8wNS8yMDIzIDE1OjI2LCBNaWNoYWVsIEhhbGwg
d3JvdGU6PGJyPjxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IGRpc3BsYXk6IGJs
b2NrOyB3aWR0aDogOTh2dzsiPiZndDsgPGJyPiZndDsmZ3Q7IE9uIE1heSAxMCwgMjAyMywgYXQg
ODo1MiBBTSwgTWF1cml6aW8gQ2ltYWRhbW9yZTxicj4mZ3Q7Jmd0OyAmbHQ7bWF1cml6aW8uY2lt
YWRhbW9yZUBvcmFjbGUuY29tJmd0OyB3cm90ZTo8YnI+Jmd0OyZndDsgPGJyPiZndDsmZ3Q7IDxi
cj4mZ3Q7Jmd0OyBPbiAxMC8wNS8yMDIzIDE0OjA1LCBNaWNoYWVsIEhhbGwgd3JvdGU6PGJyPiZn
dDsmZ3Q7Jmd0OyBCYXNpY2FsbHkgeW914oCZcmUgc2F5aW5nIHlvdSBuZWVkIGEgbGVuZ3RoIDUg
Y2hhaW4gdGhhdCBuZWVkcyB0bzxicj4mZ3Q7Jmd0OyZndDsgYmUgc2VhcmNoZWQgZm9yIHRoZSBs
ZWFmPyBZZXMsIHVsdGltYXRlbHkgeW91IHdvdWxkIGF0IHNvbWU8YnI+Jmd0OyZndDsmZ3Q7IHBv
aW50LiBQb3NzaWJseSB5b3Ugd291bGQgYmUgb3ZlciB3b3JraW5nIGEgbGFtYmRhPyBJIHRob3Vn
aHQgaXQ8YnI+Jmd0OyZndDsmZ3Q7IG1pZ2h0IGJlIG1vcmUgYSBjb252ZW5pZW5jZSB0byB0aGUg
ZGV2ZWxvcGVyIGlmIHRoZXkgaGF2ZSBhPGJyPiZndDsmZ3Q7Jmd0OyBjb2xsZWN0aW9uIG9mIFBh
dGjigJlzIHRoZXkgY291bGQgc3BlY2lmeSB0aGVtIGluIG9uZSBpbnZvY2F0aW9uIG9mPGJyPiZn
dDsmZ3Q7Jmd0OyBsaWJyYXJ5TG9va3VwIGFuZCB0aGUgYXBpIHdvdWxkIG1hbmFnZSB0aGUgbmVj
ZXNzYXJ5IG11bHRpcGxlPGJyPiZndDsmZ3Q7Jmd0OyBTeW1ib2xMb29rdXDigJlzIHNlYXJjaGlu
ZyBmb3IgdGhlIGxlYWYuIFRoZSBkZXZlbG9wZXIgY2FuIG9mPGJyPiZndDsmZ3Q7Jmd0OyBjb3Vy
c2UgbWFuYWdlIHRoaXMgdGhlbXNlbHZlcyBhbHRob3VnaCBhZ2FpbiBhdCBzb21lIHBvaW50IG1h
eWJlPGJyPiZndDsmZ3Q7Jmd0OyBub3Qgd2l0aCBhIGxhbWJkYS48YnI+Jmd0OyZndDsmZ3Q7IDxi
cj4mZ3Q7Jmd0OyBXaGF0IEknbSBzYXlpbmcgaXMgdGhpczo8YnI+Jmd0OyZndDsgPGJyPiZndDsm
Z3Q7IGBgYCBTeW1ib2xMb29rdXAgTVlfTE9PS1VQID0gU3ltYm9sTG9va3VwLmNvbXBvc2UoIDxi
cj4mZ3Q7Jmd0OyBsaWJyYXJ5TG9va3VwKCJsaWIxIiwgYXJlbmEpLCBsaWJyYXJ5TG9va3VwKCJs
aWIyIiwgYXJlbmEpLCA8YnI+Jmd0OyZndDsgbGlicmFyeUxvb2t1cCgibGliMyIsIGFyZW5hKSwg
bGlicmFyeUxvb2t1cCgibGliNCIsIGFyZW5hKSwgLi4uIDxicj4mZ3Q7Jmd0OyBsaWJyYXJ5TG9v
a3VwKCJsaWJOIiwgYXJlbmEpKTsgYGBgPGJyPiZndDsmZ3Q7IDxicj4mZ3Q7Jmd0OyBEb2Vzbid0
IHNlZW0gYmFkLiBZb3UgZ2V0IGJhY2sgYSBzaW5nbGUgbG9va3VwLCB3aGljaCBpcyB0aGVuIHVz
ZWQ8YnI+Jmd0OyZndDsgdG8gcGVyZm9ybSBzZXZlcmFsIGxvb2t1cHMuIElmIHdlIGNhbiBhY2hp
ZXZlIHNhbWUgYmVoYXZpb3IgdmlhPGJyPiZndDsmZ3Q7IHNpbXBsZSBjb21wb3NpdGlvbiwgdGhh
dCBzZWVtcyBiZXR0ZXIvbW9yZSBmbGV4aWJsZSB0byBtZS4gU3ltYm9sPGJyPiZndDsmZ3Q7IGxv
b2t1cHMgYXJlIGNyZWF0ZWQgb25jZSAoYXQgdGhlIHN0YXJ0IG9mIHlvdXIgYXBwbGljYXRpb24p
IGFuZDxicj4mZ3Q7Jmd0OyB0aGVuICJmb3Jnb3QiLCBzbyBJIGRvbid0IHRoaW5rIHRoZXJlJ3Mg
YSBsb3Qgb2YgdmFsdWUgaW4gbWFraW5nPGJyPiZndDsmZ3Q7IHRoZSBhYm92ZSBtb3JlIHN1Y2Np
bmN0IChhdCB0aGUgZXhwZW5zZSBvZiBBUEkgcmVndWxhcml0eSkuPGJyPiZndDsmZ3Q7IDxicj4m
Z3Q7Jmd0OyBNYXVyaXppbzxicj4mZ3Q7Jmd0OyA8YnI+Jmd0OyZndDsgPGJyPiZndDsgQWgsIHNv
cnJ5LCBoYWRu4oCZdCBzZWVuIGNvbXBvc2UgeWV0LiBObywgbm90IGJhZCBhdCBhbGwuPGJyPiZn
dDsgPGJyPiZndDsgVGhhbmtzLCBNaWtlPGJyPiZndDsgPGJyPjwvc3Bhbj48YnI+PGJyPg==" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;">​</div>
    </div>
  </body>
</html>