簡體   English   中英

我函數中的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:解析模式錯誤:反

這是第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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM