rwa*_*ace 9 f# higher-order-functions
假设我想使用期望元组f(x,y)的函数运行折叠.这可以通过以下方式完成
List.fold (fun x y -> f (x, y)) x xs
Run Code Online (Sandbox Code Playgroud)
我觉得应该有一个高阶函数来抽象出该模式,采用一个期望元组的函数并将其转换为需要两个独立参数的函数.
F#标准库中有这样的功能吗?如果没有,很容易写,但它应该被称为什么?untuple?
Gus*_*Gus 15
在大多数函数语言中,该函数通常称为curry.它的定义是:
let curry f x y = f (x, y)
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不在F#核心库中,但它可以在许多外部基础库中使用,例如F#x和F#+.