Matrix multiplication: Difference between revisions

Line 2,249:
</pre>
===With List and without transpose - shorter===
<lang Haskell>mult :: Num a => [[a]] -> [[a]] -> [[a]]
mult uss vss =
mult uss vss = map ((\xs -> if null xs then [] else foldl1 (zipWith (+)) xs). zipWith (\vs u -> map (u*) vs) vss) uss
map
((\xs ->
main = mapM_ print $ mult [[1, 2],[3, 4]] [[-3, -8, 3],[-2, 1, 4]]</lang>
if null xs
then []
else foldl1 (zipWith (+)) xs) .
zipWith (flip (map . (*))) vss)
uss
 
main :: IO ()
main = mapM_ print $ mult [[1, 2], [3, 4]] [[-3, -8, 3], [-2, 1, 4]]</lang>
{{out}}
<pre>[-7,-6,11]
9,659

edits