【问题标题】:Converting a triple of lists into a list of triples in Haskell在 Haskell 中将列表的三元组转换为三元组的列表
【发布时间】:2013-12-20 23:58:07
【问题描述】:

我知道 zip 可以对对执行此操作,但我认为没有一个函数可以对三元组执行此操作?我怎么做一个?或者如果失败了,我将如何将第三个列表的每个成员依次添加到每一对中,从而制作一个三元组列表?

【问题讨论】:

    标签: list haskell tuples


    【解决方案1】:

    尝试使用Hoogle

    Prelude 中的一些功能:

    zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
    

    顺便说一下revert函数的存在:

    unzip :: [(a, b)] -> ([a], [b])
    
    unzip3 :: [(a, b, c)] -> ([a], [b], [c])
    

    如果需要柯里化,我们可以添加

    uncurry3 f (x, y, z) = f x y z
    
    uncurry3 zip3 :: ([a], [b], [c]) -> [(a, b, c)]
    

    【讨论】:

    【解决方案2】:
    zip3 (x:xs) (y:ys) (z:zs) = (x,y,z) : zip3 xs ys zs
    zip3 _      _      _      = []
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2022-11-16
      相关资源
      最近更新 更多