F#元组为函数参数

时间:2016-06-24 08:28:04

标签: parameters f# tuples currying

有没有办法将元组转换为单独的参数并将它们放入函数而不是绑定到变量?

这样的东西
let nice funOf5 tupleOf5 =
    funOf5 (Tuple.toParameters tupleOf5)

而不是

let ugly funOf5 tupleOf5 =
    let (number1, number2, number3, number4, number5) = tupleOf5
    funOf5 number1 number2 number3 number4 number5

感谢。

1 个答案:

答案 0 :(得分:5)

一种解决方案是在函数定义中使用模式匹配。

这受到|||>的std lib解决方案的启发,即

let inline (|||>) (x1,x2,x3) f = f x1 x2 x3

然后你可以

let inline funof5 (x1,x2,x3,x4,x5) f = f x1 x2 x3 x4 x5