我试图写一个函数,它接受一个列表对,并交换
对元素

inverse :: [(a,b)] -> [(b,a)]
inverse [] = []
inverse (x,y):xs = (y:x): inverse xs

我已经通过Prelude加载了此函数,它给了我以下错误:



这是第11行,inverse (x,y):xs = (y:x): inverse xs

最佳答案

您只需要围绕未包装的元组和列表的其余部分,像这样

inverse ((x, y):xs) = (y, x) : inverse xs

除此之外,您可以像这样使用 Data.Tuple package's swap function
Prelude> import Data.Tuple
Prelude Data.Tuple> map swap [(1, 2), (3, 4)]
[(2,1),(4,3)]

10-07 19:24