<br><br><div class="gmail_quote">On Mon, Aug 20, 2012 at 2:14 PM, Frank Shearar <span dir="ltr"><<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>></span> wrote:</div><div class="gmail_quote">
<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">OK. I didn't mean to suggest that #flatten was useful only for Arrays.<br>
They're just a convenient thing to use for examples: literal syntax. I<br>
hadn't really thought of collections of Strings. I'm not sure why<br>
double dispatch is particularly useful, unless you're thinking of<br>
being able to flatten arbitrary objects - turning a Person into<br>
{#name. 'Frank'}.</blockquote><div><br></div><div>Strings are collections of characters, so <span class="Apple-style-span" style="border-collapse:collapse;color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">Levente's example of </span><span class="Apple-style-span" style="border-collapse:collapse;color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">#('foo' ('bar')) flatten would give you #($f $o $o $b $a $r). That's probably not what you wanted. Double-dispatch lets String opt out of flattening, so you'd get $('foo' 'bar').</span></div>
<div><span class="Apple-style-span" style="border-collapse:collapse;color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span class="Apple-style-span" style="border-collapse:collapse;color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">Colin</span></div>
<div><span class="Apple-style-span" style="border-collapse:collapse;color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span class="Apple-style-span" style="border-collapse:collapse;color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br>
</span></div></div>