Maybe because of this:

function 0 = 0 where
 fun     1 = 1
         2 = 2

The last declaration (2=2) can define either fun or function. I'm not saying this is a major problem, but there may be other problems like these.

/J

On 23 August 2010 11:15, Brent Yorgey <byorgey@seas.upenn.edu> wrote:
> On Mon, Aug 23, 2010 at 09:33:13AM +0300, John Smith wrote:
>> Why doesn't Haskell allow something like this?
>>
>> fac 0 = 0
>>     1 = 1
>>     x = x * fac (x-1)
>>
>> This would be clearer than repeating the function name each time,
>> and follow the same pattern as guards and case.
>
> Good question.  I don't know of any particular reason.
>
> -Brent
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>