2010-06-25 32 views
20

儘管沒有一個真正的正確風格,但C#社區中存在一些關於編碼標準/風格的普遍一致的觀點;通常,它們是.NET Framework設計指南的變體。F#編碼風格和標準

但是,當您查看F#時,該標準與C#中認爲正常的標準明顯不同。例如,List或Seq(幾乎)可訪問的函數全部以小寫字母開頭:List.fold,List.map(但List.Cons和List.Empty不會...),但通常可以接受C#中的方法或屬性應該大寫。

所以我的問題是,是否有被廣泛接受的F#代碼約定?是否有框架設計指南的等價物,或者是否存在一個好的編碼標準?而且,作爲獎勵,在基於空白的F#世界中,人們是否有無盡的爭論話題,類似於永恆的C#花括號位置?

+2

List.Cons和List.Empty是構造函數,而不是函數。這就是爲什麼他們以大寫字母開頭。 – sepp2k 2010-06-25 19:50:49

+0

我明白這個區別;但是,我想知道這種公認的慣例是否寫在某個地方。在C#中,方法和構造函數都以大寫字母開頭。 – Mathias 2010-06-25 19:59:56

回答

23

F#團隊已經起草了一份文件,聽起來像是你要求的。 (我們目前正在整合我們發送草稿的社區/內部人員的反饋意見。)它很可能會在不久的將來發布。我一定會在發佈時將它鏈接到這裏。

編輯

The document is archived now,你應該consult the updated version來代替。

+0

非常酷。缺乏標準並不是我長期以來最大的問題,但我非常喜歡一致性,這會有所幫助。任何有關像StyleCop for F#的想法? – Mathias 2010-06-25 20:11:28

+0

我個人沒有任何想法,我也不知道有誰打算創建這樣的工具。 (你可以創建它並對F#社區變得重要!:)) – Brian 2010-06-25 20:40:18

+1

我認爲大多數編碼約定來自OCaml背景。 – 2010-07-01 13:06:19

7

更新:Don的論文(下面鏈接)已從Microsoft網站中刪除。但是,A comprehensive guide to F# Formatting Conventions似乎基於同一篇論文。

Don Syme的F# Coding Guidelines paper涉及F#的「大括號」格式風格問題。

+2

本文似乎現在不在線,但有https://github.com/dungpa/fantomas/blob/master/ docs/FormattingConventions.md顯然是基於它的。 – Dave 2014-11-19 03:37:28

+0

感謝評論@Dave。我已經用你的建議更新了答案。 – bentayloruk 2014-11-20 17:28:29