transpose' :: [[a]] -> [[a]]
transpose' [[]] = []
transpose' [[], _] = []
transpose' rows = (map head' rows) : transpose' (map tail' rows)
where
head' (x:_) = x
tail' (_:xs) = xs
matMult3 :: (Num a) => [[a]] -> [[a]] -> [[a]]
matMult3 a b = [ [ sum $ zipWith (*) ar bc | bc <- (transpose' b) ] | ar <- a ]
Wer hat irgendwelche Ideen, warum dies könnte eine nicht erschöpfende werfen? Ich habe das Gefühl, dass etwas fehlt, aber ich bin zu neu, um es selbst zu wissen, ich lerne es selbst, also könnte das der Grund sein, jeder Rat würde geschätzt werden.Nicht erschöpfende Muster in meiner Funktion Kopf '
Was passiert, wenn meine Eingabe nicht gut ist? Z.B. Transponieren ["a", ""] '. – gallais