On 2004-12-23 at 15:09-0200 =?ISO-8859-1?Q?Maur=EDcio?= wrote:
> Guys,
>
> What is wrong with this code?
>
> **************
> import Complex
> roots :: (Complex, Complex, Complex) -> (Complex, Complex);
> roots (a,b,c) = (x1,x2) where { x1 = (b*b + (sqrt_delta))/(2*a); x2 =
> (b*b - (sqrt_delta))/(2*a); sqrt_delta = sqrt 4*a*c}
> **************
>
> I load it into GHCi and get:
>
> **************
> Kind error: `Complex' is not applied to enough type arguments
That means what it says: Complex takes an argument, namely
the type for the real and imaginary parts. You need to
choose from Float, Double or some RealFloat.
Try this in ghci:
Prelude> :m Complex
Prelude Complex> :info Complex
-- Complex is a type constructor
data (RealFloat a) => Complex a = (:+) !a !a
and then
> type Compl = Complex Double
> roots :: (Compl, Compl, Compl) -> (Compl, Compl)
--
J�n Fairbairn [EMAIL PROTECTED]
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe