[英]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:解析模式錯誤:反
這是第11行, inverse (x,y):xs = (y:x): inverse xs
您只需要圍繞未包裝的元組和列表的其余部分,像這樣
inverse ((x, y):xs) = (y, x) : inverse xs
除此之外,您還可以使用Data.Tuple
包的swap
函數 ,如下所示
Prelude> import Data.Tuple
Prelude Data.Tuple> map swap [(1, 2), (3, 4)]
[(2,1),(4,3)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.