Open5

Haskell 環境セットアップ

yukiyuki

n度目のチャレンジでHaskellをしっかりやりたいなと思って環境構築しようとしている。ただ、調べてみると情報がいろいろ錯綜していそうなので、2022年時点の話を改めてまとめておきたい。(が、この情報も錯綜を生む可能性がある 🤔)

ちなみに開発環境として想定しているのは

  • macOS 12.6 (Apple M1 Pro)
  • brew 経由でインストールしておきたい
  • 開発環境には VSCode を使用

です。

yukiyuki

参考資料

結局下記の記事を参考にした。
https://zenn.dev/autotaker/articles/haskell-setup-2021

たしかに数年前は cabal より stack の方が便利ですよと言われていたと思ったが、初心者につきあまり違いがわかっていないので、一旦記事に従って cabal を入れる方向で行こうかと思う。

ちなみに、とほほさんの情報も一応参照した。
https://www.tohoho-web.com/ex/haskell.html

が、環境構築で紹介されている「Haskell Platform」は 2022 年で deprecated になったらしいので、これ経由での環境構築は期待できないかと思われる。
https://www.haskell.org/platform/

事情はこちらのスレッドにある程度まとまっていそう。(あとで読むかもしれない)
https://www.reddit.com/r/haskell/comments/rozoi1/what_happened_to_the_haskell_platform/

yukiyuki

ghcup のインストール

https://www.haskell.org/ghcup/guide/

私の環境だと下記で 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

で確認することができる。

yukiyuki

プロジェクトを作成する

適当なディレクトリを作る。今回は「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.

開発に必要なプロジェクトはこれで一旦揃ったはず。