内置"配对" f#中的函数?

时间:2017-12-13 17:32:04

标签: f#

f#中是否有内置函数,签名为'a -> 'b -> 'a*'b

我意识到写fun a b -> a, b非常容易,但fun a -> a也是如此,我们仍然有id function

使用示例:

let pairify = fun a b -> a, b

[1;2;3] |> List.mapi pairify

1 个答案:

答案 0 :(得分:3)

没有内置函数'a -> 'b -> 'a * 'b,这有点烦人。如果您要提供自己的路线,为什么不定义global operator呢?

let (=>) = fun a b -> a, b
1=>2
// val it : int * int = (1, 2)

这也使得更明显的是,例如提供像dict[1=>"a";2=>"b"]这样的键值对。您的列表索引用例将变为

[1;2;3] |> List.mapi (=>)
// val it : (int * int) list = [(0, 1); (1, 2); (2, 3)]