Ищу функцию 'a ->' b -> 'a *' b - PullRequest
       2

Ищу функцию 'a ->' b -> 'a *' b

2 голосов
/ 10 сентября 2011

Есть ли встроенная функция или оператор "make pair"?Я знаю, что это тривиально, но в некоторых случаях это облегчит композицию функций.

По сути, просто

let makePair a b = a, b

Могу ли я также предложить Foogle ?

Ответы [ 2 ]

2 голосов
/ 10 сентября 2011

Нет, я не думаю, что есть такая функция в библиотеке F # (и вы также не можете рассматривать , как оператор, что разрешено в Haskell).

F # не хватает многих других функций, которые часто используются в композиции функций (или в стиле без точек), включая flip : ('a -> 'b) -> 'b -> 'a и curry : ('a * 'b -> c) -> 'a -> 'b - 'c).Честно говоря, я думаю, что это хорошо, потому что это мешает людям писать код, который трудно читать.

Конечно, во многих случаях использование какой-либо функции, подобной этой, дает читабельный код, но этодействительно трудно найти правильный баланс.

0 голосов
/ 10 сентября 2011

FSharpx стремится заполнить некоторые из этих пробелов (когда это возможно).Он имеет flip, curry и конструкторы кортежей (среди прочего).

Если вы действительно заинтересованы в создании Hoogle для F #, вы можете работатьс Нилом Митчеллом (создателем Google) для его реализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...