Итак, у меня есть следующий код:
// Learn more about F# at http://fsharp.net
open System
open System.Linq
open Microsoft.FSharp.Collections
let a = [1; 2; 3; 4; 54; 9]
let c = a |> List.map(fun(x) -> x*3) |> List.filter(fun(x) -> x > 10)
let d = a.Select(fun(x) -> x*3).Where(fun(x) -> x > 10)
for i in c do
Console.WriteLine(i)
for i in d do
Console.WriteLine(i)
Оба, похоже, делают то же самое, но большинство примеров F #, которые я вижу, используют оператор | > pipe, в то время как я больше привык к цепочке методов (a.l.a. C # Linq). Последний также несколько короче, хотя и несколько более хрустнут вместе. На данный момент я использую синтаксис С# Linq, но это скорее привычка/инерция, чем любое реальное дизайнерское решение.
Есть ли какие-либо соображения, о которых я должен знать, или они в основном идентичны?
Изменить: Другое соображение состоит в том, что синтаксис Pipe значительно более "шумный", чем синтаксис Linq: операция, которую я выполняю (например, "карта" ), действительно короткая и в нижнем регистре, в то время как каждому из них предшествует этот Огромный "| > Список", что, кроме того, что он больше отвлекает глаз от крошечного имени нижнего регистра. Даже ярлык синтаксиса StackOverflow подчеркивает неправильную (неактуальную) вещь. Либо это, либо я просто не привык к этому.