Haskell 我的函数中有语法错误
Haskell syntax error in my function
我试着写了一个函数,它接受一个列表对,并交换
对元素
inverse :: [(a,b)] -> [(b,a)]
inverse [] = []
inverse (x,y):xs = (y:x): inverse xs
我已经通过 Prelude 加载了这个函数,它给我以下错误:
mydefs.hs:11:1: Parse error in pattern: inverse
这是第 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)]
我试着写了一个函数,它接受一个列表对,并交换 对元素
inverse :: [(a,b)] -> [(b,a)]
inverse [] = []
inverse (x,y):xs = (y:x): inverse xs
我已经通过 Prelude 加载了这个函数,它给我以下错误:
mydefs.hs:11:1: Parse error in pattern: inverse
这是第 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)]