Haskell 環境セットアップ
n度目のチャレンジでHaskellをしっかりやりたいなと思って環境構築しようとしている。ただ、調べてみると情報がいろいろ錯綜していそうなので、2022年時点の話を改めてまとめておきたい。(が、この情報も錯綜を生む可能性がある 🤔)
ちなみに開発環境として想定しているのは
- macOS 12.6 (Apple M1 Pro)
- brew 経由でインストールしておきたい
- 開発環境には VSCode を使用
です。
参考資料
結局下記の記事を参考にした。
たしかに数年前は cabal より stack の方が便利ですよと言われていたと思ったが、初心者につきあまり違いがわかっていないので、一旦記事に従って cabal を入れる方向で行こうかと思う。
ちなみに、とほほさんの情報も一応参照した。
が、環境構築で紹介されている「Haskell Platform」は 2022 年で deprecated になったらしいので、これ経由での環境構築は期待できないかと思われる。
事情はこちらのスレッドにある程度まとまっていそう。(あとで読むかもしれない)
ghcup のインストール
私の環境だと下記で ghcup を入れられた。
$ brew install ghcup
あとは順に
GHC(コンパイラ)のインストール
$ ghcup install ghc 9.4.2
$ ghcup set ghc 9.4.2
cabal(ビルドツール)のインストール
$ ghcup install cabal 3.8.1.0
$ ghcup set cabal 3.8.1.0
hls(Language Server)のインストール
$ ghcup install hls 1.8.0.0
$ ghcup set hls 1.8.0.0
ちなみにタグは「latest」や「recommended」が代わりに使える。どのバージョンがインストール可能かは、
$ ghcup list
で確認することができる。
プロジェクトを作成する
適当なディレクトリを作る。今回は「start-haskell」という名前にしておく。
$ mkdir start-haskell
$ cd start-haskell
次に cabal のコマンドを叩く。
$ cabal update
$ cabal init -i
init -i
を使うと対話モードが立ち上がるが、とりあえずシンプルなものでよいというかこだわりがとくにないので、そのままエンターを押して自動作成してもらった。
$ cabal init -i
Should I generate a simple project with sensible defaults? [default: y]
Guessing dependencies...
Generating LICENSE...
Warning: unknown license type, you must put a copy in LICENSE yourself.
Generating CHANGELOG.md...
Generating src/MyLib.hs...
Generating app/Main.hs...
Generating start-haskell.cabal...
Warning: no synopsis given. You should edit the .cabal file and add one.
You may want to edit the .cabal file and add a Description field.
開発に必要なプロジェクトはこれで一旦揃ったはず。
VSCode の設定
Haskell Extension を入れた。
ghcup の設定を利用したいので、何かしらの Haskell ファイルを開くとでてくるプロンプトで「Automatically select ghcup」みたいなボタンを押した(スクショを撮り忘れた)。
これでほぼ準備完了?