0
在haskell我试图将[(1,2),(3,4),(5,6)] 这样的列表转换为两个清单:[1,3,5]和[2,4,6]使用递归函数只将op元组转换为一元元组的两个列表
这个我试过,到目前为止,但它不工作
unpair :: [(a,b)] -> ([a], [b])
unpair [] = []
unpair ((x,y):xs) = x : unpair(xs) y : unpair (xs)
然而,当,我只尝试列出元组中的第一个值,它的确行得通:
unpair [] = []
unpair ((x,y):xs) = x : unpair(xs)
任何想法我做错了什么?
'unpair'返回一个_pair_,而不是一个列表。因此,你的两个例子都是错误的。使用(x,y) - >'或'let(x,y)= ... in'的case ..来访问一对的组件。 – chi 2014-12-02 18:51:40