Method Chaining vs |> Operador de tuberías

Así que tengo el siguiente código:

// 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)

Both parece hacer lo mismo, pero la mayoría de los ejemplos de F # que veo usan el operador de tubería |>, mientras que estoy más acostumbrado a encadenar métodos (a.l.a. C # Linq). Este último también es algo más corto, aunque algo más crujido. Por ahora estoy usando la sintaxis de C # Linq, pero eso es más un hábito / inercia que una decisión de diseño real.

¿Hay alguna consideración que deba conocer, o son básicamente idénticas?

Edit: La otra consideración es que la sintaxis de Pipe es significativamente más "ruidosa" que la sintaxis de Linq: la operación que estoy haciendo (por ejemplo, "mapa") es realmente corta y en minúsculas, mientras que cada una está precedida por este enorme "| > Lista "que, además de hacerlo más largo, distrae la atención del nombre minúsculo y minúsculo del método. Incluso el resaltador de sintaxis de StackOverflow resalta lo incorrecto (irrelevante). O eso o simplemente no estoy acostumbrado.

Respuestas a la pregunta(5)

Su respuesta a la pregunta