创建一个生成逆矩阵的函数
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
并且它完全符合您的要求。
我是 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
并且它完全符合您的要求。