Kronecker product: Difference between revisions

m
(→‎{{header|BQN}}: Nesting-based definition)
Line 1,608:
<lang haskell>import Data.List (transpose)
 
kprod :: Num a => [[a]] -> [[a]] -> [[a]]
kprod
:: Num a
=> [[a]] -> [[a]] -> [[a]]
kprod xs ys =
(fmap (`f` ys) <$> xs)
let f = fmap . fmap . (*) -- Multiplication by n over list of lists
in >>= fmap concat . transpose =<< fmap (`f` ys) <$> xs
where
f = fmap . fmap . (*)
 
main :: IO ()
9,655

edits