Je suis un peu spéculatif...
Culture : Je pense |>
est un opérateur important dans la "culture" F#, et peut-être de façon similaire avec .
pour Haskell. F# possède un opérateur de composition de fonctions <<
mais je pense que la communauté F# a tendance à utiliser style sans points moins que la communauté Haskell.
Différences linguistiques : Je ne connais pas assez les deux langages pour comparer, mais peut-être que les règles de généralisation des let-bindings sont suffisamment différentes pour affecter cela. Par exemple, je sais qu'en F#, il est parfois possible d'écrire
let f = exp
ne compilera pas, et vous aurez besoin d'une conversion explicite en eta :
let f x = (exp) x // or x |> exp
pour le faire compiler. Cela éloigne également les gens du style sans points/compositionnel, et les oriente vers le style pipelining. De plus, l'inférence de type F# exige parfois le pipelining, de sorte qu'un type connu apparaisse à gauche (cf. aquí ).
(Personnellement, je trouve le style sans points illisible, mais je suppose que toute chose nouvelle/différente semble illisible jusqu'à ce qu'on s'y habitue).
Je pense que les deux sont potentiellement viables dans l'une ou l'autre langue, et l'histoire/culture/accident peut définir pourquoi chaque communauté s'est installée à un "attracteur" différent.
2 votes
réponse de Lihanseys déclare que
&
est le|>
. Enterré profondément dans ce fil et il m'a fallu quelques jours pour le découvrir. Je l'utilise beaucoup, car vous lisez naturellement de gauche à droite pour suivre votre code.