2012-12-16 86 views
5

我發現我常常對我縮進多少東西,我在哪裏放入新行等不一致。在官方或廣泛遵循的指導方針中,應該如何佈局Haskell中的空白?請注意,我並沒有問什麼是合法的,我在問什麼是良好的做法,沿着Good Haskell coding style of if/else control block?的路線,但更普遍。我特別想知道人們用do-block,let-block,where-block和case語句做什麼,特別是當這些東西嵌套在一起時或在幾個函數定義中時。Haskell縮進樣式

+1

[Indentation](http://en.wikibooks.org/wiki/Haskell/Indentation)Wikizook本應包含您的尋找答案。 –

+13

[Here's a一套好的通用Haskell風格指南,包括縮進](https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md)。 – hammar

+1

@David:這是關於什麼是合法的,不是什麼好的做法 – Mohan

回答

1

如果我願意的話,可以選擇一個小小的挑逗。

我大多喜歡hammar的鏈接指南。但是,我真的不喜歡這種風格:

send :: Socket 
    -> ByteString 
    -> IO Int 

我更喜歡

send :: 
    Socket -> 
    ByteString -> 
    IO Int 

在後者的風格,參數和結果會有所不同(參數後,他們有-> S)。

我更喜歡這個。人們可能會不同意,這主要是個人品味的問題。可悲的是,afaik haddock似乎只支持前者的風格:

+1

我也想知道每行80個字符規則是否在pe的後面ople需要在卡片上打出他們的haskell源碼? – Ingo

+0

@Ingo在我看來,列限制更好地利用空間。我通常在屏幕上並排放置幾列文本。 – Heatsink

+0

@ Heatsink非常真實。但爲什麼80?爲什麼不是72或96? – Ingo