[Haskell-beginners] wanto post haskell question

조광래 kwangraecho at gmail.com
Tue Feb 2 04:32:08 EST 2010


hi I have a question about haskell coding.

Matrices

One of many ways to define matrices in Haskell is the list of matrix rows,
where a row is a list of double precision oating point numbers:

type Matrix=[[Double]]

Using this type you should define the following functions (definition of dim
is given as an inspirational example).

dim :: Matrix -> (Int,Int) --returns matrix dimension (number of rows
and columns)
dim m = if (not.isMatrix) m then error "Not a matrix" else (length m,
length (head m))

isMatrix :: Matrix -> Bool --checks whether all rows have the same length
isMatrix m =  and [length (head m) == length a | a <- m]

I have done upto here and I am stuck on multSM.

multSM :: Double -> Matrix -> Matrix --multiplies a scalar and a matrix

when I do:

multSM  d m = [[(b*a)| b<-[d], a<-(head m)]] or [map (*d) (head m)]

...I get (using Hugs):

Main> multSM 3 [[2,3,4],[1,3,4],[6,3,0]] [[6.0,9.0,12.0]]

So I solve 3 [2,3,4] but I do not know how to get the rest 3
[[1,3,4],[6,3,0].

Please help me on this problem.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20100202/3e0ef10d/attachment-0001.html


More information about the Beginners mailing list