寻找功能'a - > 'b - > 'a *'b

时间:2011-09-09 22:38:22

标签: f#

是否有内置的“make pair”功能或操作符?我知道这是微不足道的,但在某些情况下会减轻功能构成。

基本上,只是

let makePair a b = a, b

我还可以建议Foogle吗?

2 个答案:

答案 0 :(得分:2)

不,我不认为在F#库中有这样的函数(并且你也不能将,视为运算符,这在Haskell中是允许的)。

F#缺少许多其他常用于函数组合(或无点样式)的函数,包括flip : ('a -> 'b) -> 'b -> 'acurry : ('a * 'b -> c) -> 'a -> 'b - 'c)。坦率地说,我认为这是一件好事,因为它不鼓励人们编写难以阅读的代码。

当然,在很多情况下,使用这样的函数会产生可读的代码,但很难找到合适的平衡。

答案 1 :(得分:0)

FSharpx旨在填补其中的一些空白(只要有可能)。它有flip, currytuple constructors(以及许多其他内容)。

如果你真的有兴趣为F#构建Hoogle,你可以work with Neil Mitchell(Hoogle的创建者)来实现它。