我试图写一个函数,它接受一个列表对,并交换
对元素
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
functionPrelude> import Data.Tuple
Prelude Data.Tuple> map swap [(1, 2), (3, 4)]
[(2,1),(4,3)]