Я обычно не использую конвейер, если аргументы не совпадают, потому что я чувствую, что это может повредить читабельности.Вариант Брайана вполне понятен, но он мало чем отличается от присвоения результата значению (использование let
вместо конвейера и fun
).
Итак, я бы просто написал это (без какой-либо приятной функциональной магии):
let x = seq { 1 .. 100 } |> Seq.sum
pown x 2
По сути, это то же самое, что и версия Брайана - вы также присваиваете результат значению - но это более просто.Вероятно, я бы использовал более описательное имя, например sumResult
вместо x
.
Версия, использующая flip
, довольно стандартная вещь в Haskell, хотя я также считаю, что ее может стать трудно читатьне в этом простом случае, но если объединить несколько функций, это может легко стать ужасным).Я думаю, что это также причина, по которой flip
(и другие) отсутствуют в библиотеках F #.