<div dir="ltr"><div><div>The Internet is rife with stuff regarding the Expression problem.  Pretty much any major language has some posting, paper or article on how it is addressed to some degree by the language in question.<br>
<br><a href="http://en.wikipedia.org/wiki/Expression_problem">http://en.wikipedia.org/wiki/Expression_problem</a><br><br></div>It&#39;s a can I have my cake and eat it too issue.<br><br>&quot;add new cases to the datatype and new functions over the datatype, 
without recompiling existing code, and while retaining static type 
safety&quot;<br><br></div>You sorta get one and not the other respectively in Functional vs OO.  The trick is we all want both damn it.<br><br>FWIW, Scala with its &quot;Type Class&quot; and implicit conversions gets fairly close, but its a bit heavy handed.<br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jun 21, 2013 at 9:55 AM, Hendrik Boom <span dir="ltr">&lt;<a href="mailto:hendrik@topoi.pooq.com" target="_blank">hendrik@topoi.pooq.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Jun 21, 2013 at 09:39:12AM -0400, Ray Racine wrote:<br>
...<br>
<div class="im">&gt;<br>
&gt; 4) The Expression Problem<br>
&gt;    For whatever reason one can code in OO without ever noting the<br>
&gt; expression problem.   After a bit of functional programming you note it,<br>
&gt; even if you don&#39;t know what it&#39;s been called or the dual nature of the<br>
&gt; issue in OO land.  Once you know of it you&#39;ll start noting its dual side in<br>
&gt; OO.<br>
</div>...<br>
<br>
Care to describe the Expression Problem  and its dual?  I&#39;m  not<br>
familiar with the term.<br>
<span class="HOEnZb"><font color="#888888"><br>
-- hendrik<br>
</font></span><div class="HOEnZb"><div class="h5">____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</div></div></blockquote></div><br></div>