2015-06-12 43 views
10

背景Haskell表達式允許換行符在哪裏?

大多數風格指南建議將行長度保持爲79個字符或更少。在Haskell中,縮進規則意味着表達式經常需要用新行來分解。

問題:

中的表達式,它在哪裏的法律來放置新行?

是否記錄在某處?


擴展問題:我看到GHC格式化我的代碼時,所以有人想出如何自動打破長行的過程報告錯誤。是否有一個實用工具,我可以把haskell代碼放進去,讓它把代碼轉換成很好的格式?

+0

看看這個軟件包https://hackage.haskell.org/package/haskell-formatter – Arnon

+4

谷歌搜索格式應該給你幾個有用的結果。在haskell中,除了縮進規則(代碼至少和它所屬的塊一樣縮進,簡化)之外,空白(包括換行符)被忽略。 – Cubic

回答

5

您可以在表達式的詞彙標記之間的任何位置放置換行符。但是,對於換行符後面可能會有多少縮進存在限制。簡單的經驗法則是將下一行縮進到包含表達式的行的右側。除此之外,一些風格的東西:

  • 如果您縮進出現在定義name = expression的表達,這是很好的風格縮進到=標誌的權利。

  • 如果您縮進上的do結合或列表理解的右側會出現一個表達,這是很好的風格縮進到<-標誌的權利。

的權威文件可能是Haskell 98 Report是(Chapter 2詞法結構),但我個人不覺得這材料很容易閱讀。