11 lines
356 B
Haskell
11 lines
356 B
Haskell
multiply :: Num a => [[a]] -> [[a]] -> [[a]]
|
|
multiply us vs = map (mult [] vs) us
|
|
where
|
|
mult xs [] _ = xs
|
|
mult xs _ [] = xs
|
|
mult [] (zs:zss) (y:ys) = mult (map (y *) zs) zss ys
|
|
mult xs (zs:zss) (y:ys) = mult (zipWith (\u v -> u + v * y) xs zs) zss ys
|
|
|
|
main :: IO ()
|
|
main = mapM_ print $ multiply [[1, 2], [3, 4]] [[-3, -8, 3], [-2, 1, 4]
|