代码之家  ›  专栏  ›  技术社区  ›  Saurabh Nanda

通过透镜折叠或浓缩Aeson阵列

  •  0
  • Saurabh Nanda  · 技术社区  · 7 年前

    我一直从 https://www.stackage.org/haddock/lts-12.1/lens-aeson-1.0.2/Data-Aeson-Lens.html https://www.stackage.org/haddock/lts-12.1/lens-4.16.1/Control-Lens-Fold.html 试图找出如何编写一个表达式,使我能够构造以下类型的内容:

    import Data.Aeson as A
    
    functionIWant 
      :: (Vector A.Value)
      -> (A.Value -> [a])
      -> [a]
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   danidiaz    7 年前

    有两种镜头功能用于“提升”常规镜头 Foldable -与lensy world相关的功能:

    • folded 它覆盖了一个系统的所有元素 可折叠 容器,在这种情况下,它将是 Vector .
    • folding 它提升了一个返回 可折叠 后果

    你可以把它们组合成一个新的 Fold 然后使用 toListOf 以获取最终列表。

    还有一种类似于 折叠 对于 Traversable ,打电话给 traversed .