2010-06-25 4 views
20

Bien qu'il n'y ait pas de style True True, certains points d'accord général existent dans la communauté C# en ce qui concerne la norme/le style de codage; Généralement, il s'agit de variantes des directives de conception de .NET Framework. Lorsque vous regardez F #, cependant, la norme est visiblement différente de ce qui est considéré comme normal en C#Style et style de codage F #

A titre d'exemple, les fonctions accessibles sur List ou Seq (presque) toutes commencent en minuscules: List.fold, List.map (mais List.Cons et List.Empty ne le font pas ...), alors qu'il est généralement admis que une méthode ou une propriété en C# doit être en majuscule.

Donc, ma question est, y a-t-il des conventions de codage largement acceptées pour F #? Existe-t-il un équivalent aux directives de conception du cadre, ou une bonne norme de codage? Et, en prime, dans le monde F # basé sur les espaces, est-ce que les gens ont des sujets à débattre sans fin, similaires à la position C# bouclée-accolade intemporelle?

+2

List.Cons et List.Empty sont des constructeurs et non des fonctions. C'est pourquoi ils commencent par des majuscules. – sepp2k

+0

Je comprends la distinction; cependant, j'aimerais savoir si ce genre de convention acceptée est écrit quelque part. En C#, les méthodes et les constructeurs commencent par une majuscule. – Mathias

Répondre

23

L'équipe F # a rédigé un document qui ressemble exactement à ce que vous demandez. (Nous sommes actuellement en train d'incorporer les commentaires de la communauté/des initiés à qui nous avons envoyé le projet.) Il est susceptible d'être publié dans un proche avenir. Je suis sûr de le lier ici quand il est publié.

EDIT

The document is archived now et vous devriez consult the updated version à la place.

+0

Très cool. Le manque d'une norme n'est pas mon plus gros problème par une longue période, mais j'aime vraiment la cohérence, et cela aiderait. Des idées pour avoir quelque chose comme StyleCop for F #? – Mathias

+0

Je n'ai personnellement aucune idée, et je ne suis pas au courant de quiconque envisage de créer un tel outil. (Vous pouvez le créer et devenir important pour la communauté F #!) – Brian

+1

Je pense que la plupart des conventions de codage proviennent de l'arrière-plan OCaml. –

7

Mise à jour: L'article de Don (lié ci-dessous) a été supprimé du site de Microsoft. Cependant, A comprehensive guide to F# Formatting Conventions semble être basé sur le même papier.

Le numéro F# Coding Guidelines paper de Don Syme traite des problèmes de style de mise en forme «accolade» pour F #.

+2

Ce document semble être déconnecté maintenant, mais il y a https://github.com/dungpa/fantomas/blob/master/ docs/FormattingConventions.md qui est apparemment basé sur elle. – Dave

+0

Merci d'avoir laissé un commentaire sur @Dave. J'ai mis à jour la réponse avec votre suggestion. – bentayloruk