私は十分に、Learn You a Haskell本を通してハスケルを学んでいます。 section on guardsまでは、コード例のどれもインデントされていませんでした。今後のHaskellコードを正しくインデントする方法については疑問に思っています。Haskell Modeのデフォルトのインデント設定はOKですか?
ブックインデント4つのスペースとbmiTell
機能でガードライン:
bmiTell :: (RealFloat a) => a -> String
bmiTell bmi
| bmi <= 18.5 = "You're underweight, you emo, you!"
| bmi <= 25.0 = "You're supposedly normal. Pffft, I bet you're ugly!"
| bmi <= 30.0 = "You're fat! Lose some weight, fatty!"
| otherwise = "You're a whale, congratulations!"
Using Haskell Mode's default indentation settings、私は(コンパイルエラーを与える)ゼロスペースを切り替えることができますし、(正常に動作するようです)二つの空間TABとS-TAB使用:
bmiTell :: (RealFloat a) => a -> String
bmiTell bmi
| bmi <= 18.5 = "You're underweight, you emo, you!"
| bmi <= 25.0 = "You're supposedly normal. Pffft, I bet you're ugly!"
| bmi <= 30.0 = "You're fat! Lose some weight, fatty!"
| otherwise = "You're a whale, congratulations!"
The docs、私はトンを必要はありませんようにそれが見えるようにo私のEmacsの設定では、インデントの推奨設定を得るために何かするが、ちょっとしたグーグルの後には、2つのスペースインデントを持つコード例を見つけることができなかった。 "Haskell style guide"を検索するとthisとなり、ブックで使用されているような4つのインデントが推奨されます。
Haskellモードのデフォルトの字下げ動作は、一般的にHaskellコードを書式設定する方法と一致していますか?もしそうでなければ、最も普及しているインデントスキームと一貫するようにEmacsの設定をどのように変更すればよいですか?
編集:明らかに、前の例ではインデントについて間違っていました。 first use of an if
statementは次のようにインデントされています
doubleSmallNumber x = if x > 100
then x
else x*2
しかし、私は私の現在の設定でTABとS-TABを使用しているように見える何かを得るように見えることはできません。
4に設定します。 '(setq haskell-indent-spaces 4)'。 – Sibi
@Sibi:[カスタマイズ変数](https://www.gnu.org/software/emacs/manual/html_node/emacs/Easy-Customization.html)として利用できるので、カスタマイズフレームワークを使用することはできません。 'setq'で直接設定します。 – Cactus
私は非常に2つのスペースを好むので、私は水平なスペースが足りなくなる傾向があります。私はまた、2つのスペースとその節のバインディングを別の2つのキーワードにインデントします。 – dfeuer