Henning Thielemann wrote:

>I'm uncertain about how who want to put the different kinds of
>multiplication into one method, even with multi-parameter type classes.
>You need instances
>
> (*) :: Matrix -> Matrix -> Matrix
> (*) :: RowVector -> Matrix -> RowVector
> (*) :: Matrix -> ColumnVector -> ColumnVector
> (*) :: RowVector -> ColumnVector -> Scalar
> (*) :: ColumnVector -> RowVector -> Matrix
> (*) :: Scalar -> RowVector -> RowVector
> (*) :: RowVector -> Scalar -> RowVector
> (*) :: Scalar -> ColumnVector -> ColumnVector
> (*) :: ColumnVector -> Scalar -> ColumnVector
>
>but you have to make sure that it is not possible to write an expression
>which needs
> (*) :: Matrix -> RowVector -> RowVector
>
>Further you need
> transpose :: RowVector -> ColumnVector
> transpose :: ColumnVector -> RowVector
> transpose :: Matrix -> Matrix
>and you must forbid, say
> transpose :: RowVector -> RowVector
>  
>
Of course if they are all of type Matrix this problem disappears. What
is the
difference between a 1xN matrix and a vector? Please explain...

    Keean.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to