[Haskell-cafe] Re: Equations for `foo' have different numbers of
arguments
Achim Schneider
barsoap at web.de
Tue Mar 24 10:58:00 EDT 2009
Manlio Perillo <manlio_perillo at libero.it> wrote:
> Hi.
>
> There is a limitation, in Haskell, that I'm not sure to understand.
> Here is an example:
>
> module Main where
>
> divide :: Float -> Float -> Float
> divide _ 0 = error "division by 0"
> divide = (/)
>
> main = do
> print $ divide 1.0 0.0
> print $ divide 4.0 2.0
>
>
>
> With GHC I get:
> Equations for `divide' have different numbers of arguments
>
> With HUGS:
> Equations give different arities for "divide"
>
>
> However the two equations really have the same number of arguments.
>
> What's the problem?
>
Equations not being what you think they are. They aren't "the symbol
'divide' equals that function" but "lhs of '=', '=', and rhs of '='.
The problem is mostly syntactical, in the sense that most occurrences of
definitions with a different number of arguments are plain typos. The
other might be implementation issues: it makes pattern match rules
more complex.
--
(c) this sig last receiving data processing entity. Inspect headers
for copyright history. All rights reserved. Copying, hiring, renting,
performance and/or quoting of this signature prohibited.
More information about the Haskell-Cafe
mailing list