创建一个生成逆矩阵的函数

Creating a function that makes an inversed matrix

我是 haskell 的新手,想知道一些关于如何创建一个函数的想法,该函数将获取多列表列表的每个头元素并将其添加到新的多列表,然后转到第二列并等等。到目前为止,我只知道如何为第一列编写一个函数:inverted (xss) = map head xss 如何让它运行到它对多列表的每一列都执行?

我们可以直接写这个函数,你的想法是正确的。先取人头,再递归调用

假设所有列表的长度相同,

inverted :: [[a]] -> [[a]]
inverted [] = [] -- Degenerate case
inverted xss
  | null (head xss) = []
  | otherwise = map head xss : inverted (map tail xss)

碰巧,这个函数已经在标准库中:它被称为 Data.List.transpose 并且它完全符合您的要求。