<div dir="ltr">I&#39;m not opposed to explode, but I think it would be better to find a verb that is related to flattening.  Extrude is better in that regard than explode.<div><br></div><div style>extrudeInto</div><div style>
mapAndExtrude</div><div style><br></div><div style>On the downside, &#39;explode&#39; has more hacker cred than &#39;extrude&#39;.</div><div style><br></div><div style> --Joe<br></div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">On Thu, Feb 14, 2013 at 12:56 PM, Brian Goetz <span dir="ltr">&lt;<a href="mailto:brian.goetz@oracle.com" target="_blank">brian.goetz@oracle.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
OK, so far we have:<br>
 - Joe asks for a better method name -- no suggestions other than mapAndFlatten<br>
 - No consensus on whether this goes into JUS or JUF.<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
On 2/12/2013 1:41 PM, Brian Goetz wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Here&#39;s where things have currently landed with FlatMapper -- this is a<br>
type in java.util.stream, with nested specializations.<br>
<br>
Full bikeshed season is now open.  Are we OK with the name<br>
explodeInto()?  Is this general enough to join the ranks of Function and<br>
Supplier as top-level types in java.util.function?<br>
<br>
@FunctionalInterface<br>
public interface FlatMapper&lt;T, U&gt; {<br>
     void explodeInto(T element, Consumer&lt;U&gt; sink);<br>
<br>
     @FunctionalInterface<br>
     interface ToInt&lt;T&gt; {<br>
         void explodeInto(T element, IntConsumer sink);<br>
     }<br>
<br>
     @FunctionalInterface<br>
     interface ToLong&lt;T&gt; {<br>
         void explodeInto(T element, LongConsumer sink);<br>
     }<br>
<br>
     @FunctionalInterface<br>
     interface ToDouble&lt;T&gt; {<br>
         void explodeInto(T element, DoubleConsumer sink);<br>
     }<br>
<br>
     @FunctionalInterface<br>
     interface OfIntToInt {<br>
         void explodeInto(int element, IntConsumer sink);<br>
     }<br>
<br>
     @FunctionalInterface<br>
     interface OfLongToLong {<br>
         void explodeInto(long element, LongConsumer sink);<br>
     }<br>
<br>
     @FunctionalInterface<br>
     interface OfDoubleToDouble {<br>
         void explodeInto(double element, DoubleConsumer sink);<br>
     }<br>
}<br>
</blockquote>
</div></div></blockquote></div><br></div>