我知道拉链是用对子做的,但我不认为有三重奏的功能吗?我怎么做一个?或者如果失败了,我如何依次将第三个列表的每个成员添加到每个对中,从而制作三元组列表?
答案 0 :(得分:8)
尝试使用Hoogle:
前奏中的一些功能:
zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
顺便说一下,还原函数存在:
unzip :: [(a, b)] -> ([a], [b])
unzip3 :: [(a, b, c)] -> ([a], [b], [c])
如果需要currying,我们可以添加
uncurry3 f (x, y, z) = f x y z
uncurry3 zip3 :: ([a], [b], [c]) -> [(a, b, c)]
答案 1 :(得分:1)
zip3 (x:xs) (y:ys) (z:zs) = (x,y,z) : zip3 xs ys zs
zip3 _ _ _ = []