Y a-t-il une bonne raison pour un ordre d'argument différent dans les fonctions d'obtention de N-ème élément du tableau, de la liste ou de la SEQ:
s |> Seq.nth n
3 Réponses :
Je ne pense pas à une bonne raison de définir En cas de array.get code> et
list.nth code> de cette façon. Étant donné que la coiffeuse est très courante dans F #, ils auraient dû être définis de manière à ce que l'argument code> Source code> est devenu dernier.
list.nth code>, il ne doit pas Changez beaucoup parce que vous pouvez utiliser
seq.nth code> et la complexité de temps est toujours
o (n) code> où
n code> est la longueur de la liste: p >
[1..100] |> flip List.nth 10
[|1..100|] |> flip Array.get 10
Il suffit d'utiliser un opérateur de tuyau arrière: puisque les deux opérateurs sont laissés associatifs, Opérateur de tuyau arrière est également utile si vous souhaitez supprimer des parenthèses: x |> f <| y code> est analysé comme
(x |> f) <| y code>, et cela fait le truc. p>
f (très longue expression) code> peut être remplacé par < code> f <| Expression très longue code>. p> p>
Cela fait l'affaire, mais je n'aime pas sa lisibilité - très claustrophobe!
@Pauljurczak Absolument, c'est plutôt une question de style. Personnellement, j'adore les opérateurs, mais ils ont naturellement limitations en F #, c'est donc un choix entre flip code >, méthodes d'extension et
<| code>. Il semble qu'il n'y ait pas de meilleure idée.
+1 pas code> et
defaultarg code> m'a mis habitué à utiliser
<| code>; Cela ne semble pas si maladroit une fois que vous vous y êtes habitué.
Depuis que Pad et Bytebuster répondit à votre dernière question que je me concentrerai sur la question des ans. P>
Ceci est basé sur mes connaissances actuelles et non des faits historiques. P>
Depuis F # dérivé d'OCAML et OCAML a Array A> et Liste mais Not SEQ et F # utilise |> Pour une pipeline naturelle et Vérification de type et OCAML manque d'opérateur de pipeline , les auteurs de F # ont fait le commutateur pour SEQ. Mais évidemment être une compablie en arrière avec Ocaml, ils n'ont pas tout changé. P>
La théorie du patrimoine OCAML a beaucoup de sens.