Оператор приложения функции ($) в F #? - PullRequest
12 голосов
/ 25 августа 2011

Допустим, у меня есть этот код

let identifier = spaces_surrounded (many1Satisfy isLetter)

Мне было интересно, есть ли какая-нибудь нативная функция F #, которая позволила бы мне изменить ее на

let identifier = spaces_surrounded $ many1Satisfy isLetter

, то есть что-то такоекак

let ($) f1 f2 = f1 (f2)

(то есть, если я не ошибаюсь, мои навыки Хаскелла не слишком острые ..).

1 Ответ

18 голосов
/ 25 августа 2011

Стандартным языком F # для этого является оператор прямого канала |>, если бы вы переписали

let identifier = spaces_surrounded (many1Satisfy isLetter)

как

let identifier = many1Satisfy isLetter |> spaces_surrounded 

вы также можете использовать оператор обратной трубы <|, если хотите сохранить первоначальный порядок, но это, как правило, немного реже

let identifier = spaces_surrounded <| many1Satisfy isLetter
...