stackを使う。
インストール: curl -sSL https://get.haskellstack.org/ | sh
インストール後 stack setup
とすることで最新のHaskellコンパイラ(GHC)が入る。
stackを使う。
stack install パッケージ名
とコマンド実行することでグローバスコープにインストールできる(ライブラリのスコープの考え方はnpmと同じ)。
パッケージの検索はhackageで出来る。
- rio (標準ライブラリとよく使われるライブラリをベストプラクティスに基づいて再編集した物)
- flow (パイプラインオペレーターを提供するパッケージ)
- stylish-haskell (フォーマッター)
- hindent (フォーマッター)
- hlint (linter)
- hoogle (パッケージ検索)
- Vim系 + haskell-ide-engineに対応した拡張
- Emacs系 + haskell-ide-engineに対応した拡張
- VSCode + haskell-ide-engineに対応した拡張
- Atom + haskell-ide-engineに対応した拡張
- IntelliJ IDEA + intellij-haskellプラグイン (※IntelliJ IDEA以外では動かないっぽい)
stack new プロジェクト名
プロジェクトディレクトリ内で stack haddock
.
stack haddock --open
とするとドキュメントを作ったらブラウザで開いてくれる。
生成したドキュメントの場所は stack path --local-doc-root
で分かる。
floskellを下記の設定で使うのが良さそう。
floskell.json
{
"language": "Haskell2010",
"style": "base",
"formatting": {
"penalty": {
"linebreak": 120,
"max-line-length": 120
}
}
}
その他に stylish-haskell
hindent
brittany
等があり、どれを使うかは好みの問題。
Haskellではコンパイル可能なコンパイラとライブラリの組み合わせがコミュニティによって保守されている。
この組み合わせの事をLTS Haskellと呼んでいる(ただしLTSというほど1バージョン当たりの保守期間は長くないので基本的には更新に追従していく)。
これに乗っかることによってライブラリのバージョンの組み合わせが悪くてコンパイルが出来ずに苦労するという状況を回避できる。
Haskellのライブラリバージョンにはセマンティックバージョングの様な枠組みが使われていないので、作者によってバージョンの付け方が異なる。
LTS Haskellの枠組みがない頃のHaskellではマイナーバージョンが上がっただけで互換性がなくなって動かなくなるなどの悲劇がよく繰り返されていたが
LTS Haskellの登場以降はこの様な悲劇は激減した。