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
答案 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)]