【问题标题】:Untupling a function解耦函数
【发布时间】:2017-03-24 08:59:28
【问题描述】:

假设我想使用一个需要元组 f (x, y) 的函数来运行折叠。这可以通过

List.fold (fun x y -> f (x, y)) x xs

我觉得应该有一个高阶函数来抽象出该模式,接受一个需要一个元组的函数并将其转换为一个需要两个单独参数的函数。

F#标准库中有这样的函数吗?如果不是,那么写起来很容易,但是习惯上应该怎么称呼它? untuple?

【问题讨论】:

    标签: f# higher-order-functions


    【解决方案1】:

    在大多数函数式语言中,该函数通常称为curry。它的定义是:

    let curry f x y = f (x, y)
    

    不幸的是,它不在 F# 核心库中,但在许多外部基础库中都可用,例如 F#xF#+

    【讨论】:

      猜你喜欢
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 2013-04-04
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多