【问题标题】:N-Ary Versions of Tuple Functions元组函数的 N 元版本
【发布时间】:2011-02-22 22:46:50
【问题描述】:

是否有一个库通过 Template Haskell(或使用其他方法)具有 n 元版本的元组函数,如 first*** 等。

理想情况下我想说

$(select 3 [0, 1])

我们制作的 lambda

\(x, y, z) -> (x, y)

对于函数的通用***

$(tapply 3 [(0, "f"), (1, "g"), (2, "h")])

这将使 lambda

\f g h (x, y, z) -> (f x, g y, h z)

其他 n 元函数也不错,但这是我目前需要的两个。

【问题讨论】:

    标签: haskell


    【解决方案1】:

    这里是 an example 使用 Template Haskell 实现此目的。

    【讨论】:

      【解决方案2】:

      tuple 库提供了许多此类函数。

      【讨论】:

        【解决方案3】:

        一般来说,我会说您想改用正确的 ADT,以及像 bifunctor 这样的库,或者,如果它变得更复杂,则使用正确的 generics 库。 (该链接可能是最新的......如果有疑问,并且您没有特别高的性能要求,只需使用SYB

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多