Maybe because of this:<br><br><span style="font-family: courier new,monospace;">function 0 = 0 where</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">  fun     1 = 1</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">          2 = 2<br><br></span>The last declaration (2=2) can define either fun or function. I&#39;m not saying this is a major problem, but there may be other problems like these.<br>
<br>/J<br><br>On 23 August 2010 11:15, Brent Yorgey &lt;<a href="mailto:byorgey@seas.upenn.edu">byorgey@seas.upenn.edu</a>&gt; wrote:<br>&gt; On Mon, Aug 23, 2010 at 09:33:13AM +0300, John Smith wrote:<br>&gt;&gt; Why doesn&#39;t Haskell allow something like this?<br>
&gt;&gt;<br>&gt;&gt; fac 0 = 0<br>&gt;&gt;     1 = 1<br>&gt;&gt;     x = x * fac (x-1)<br>&gt;&gt;<br>&gt;&gt; This would be clearer than repeating the function name each time,<br>&gt;&gt; and follow the same pattern as guards and case.<br>
&gt;<br>&gt; Good question.  I don&#39;t know of any particular reason.<br>&gt;<br>&gt; -Brent<br>&gt; _______________________________________________<br>&gt; Beginners mailing list<br>&gt; <a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
&gt; <a href="http://www.haskell.org/mailman/listinfo/beginners">http://www.haskell.org/mailman/listinfo/beginners</a><br>&gt;<br><br>