###はじめに
Haskellと言えば、取っつきにくい言語の代表だと思われる方も多いかと思いますが、開発環境は日々改善されてきています。
今回は、改善されつつある開発環境の最右翼ともいえるStackのWindowsへの導入手順を紹介します。
本記事が、皆さまがHaskellに親しむ第一歩となればと思います。
###Stackとは
Stack https://github.com/commercialhaskell/stack は、プラットフォーム間の差異を吸収したHaskell開発環境を提供する意欲的なツールです。
StackはOS間の差異を吸収するだけではなく、LTS(Long Term Support) Haskellを利用することで、Cabal Hellと呼ばれる依存性問題を解決してくれます。
###Stackのインストール
-
以下のURLからStackのバイナリを取得します。
https://github.com/commercialhaskell/stack/releases/tag/v0.1.1.0 -
バイナリを解凍し任意のディレクトリに配置し、パス環境変数を通します。
###GHCのインストール
Stackのsetupコマンドにて、Haskell実行ランタイムであるGHCをインストールします。
1.任意のディレクトリに以下の内容でstack.yamlを作成します。
resolverでは使用するLTS(Long Term Support) Haskellのバージョンを指定します。
packages:
- .
resolver: lts-2.16
2.stack.yamlを配置したディレクトリで以下のコマンドプロンプトから以下のコマンドを実行しGHCをインストールします。
GHCインストール後に表示された文字列を、パス環境変数に追加します。
stack setup
3.パス環境変数設定後、コマンドプロンプトを再起動し、
以下のコマンドを実行し、GHCのバージョンを確認します。
ghc -v
###Cabalのインストール
次に、Stackのbuildコマンドにて、プロジェクトビルドを実行するCabalをインストールします。
-
任意のディレクトリでnewコマンドを実行することで .cabal ファイルの雛形を取得します。
以下のコマンドをコマンドプロンプトから実行すると、new-template.cabalが作成されますstack new
2. 上記で作成されたファイルをstack.yamlを配置したディレクトリにコピーし、buildコマンドを実行すると、Cabalがインストールされます。
Cabalがインストールされることで、他のライブラリのインストールが円滑に進みます。
stack build
###ghc-modのインストール
最後に、Haskellプログラムを開発する際、コンパイルエラーや補完をするghc-modをインストールします。
-
任意のディレクトリでupdateコマンドを実行することで、
パッケージリストを更新します。stack update
2.任意のディレクトリでinstallコマンドを実行することで、ghc-modをインストールします。
インストール後に表示された文字列を、パス環境変数に追加します。
stack install ghc-mod
以上が、Stackを使ったHaskell環境(の第一歩)となります。
###Stackを使って何が嬉しいのか?
これまでは、求めるバージョンのGHCのインストールのために、ソースからビルドする必要があったり、cabal-installのバージョンの衝突のためghc-modがインストールできないなど、Stack以前は、LTS Haskellを使用する開発環境の構築にはとても手間がかかりました。
Stackの登場により、ただでさえ色々めんどくさいWindowsで、上記の手順でghc-modのインストールまで完了できるようになったことは、非常に革新的なことだと私は思います。
###更に快適な開発環境を求めて
実行環境の構築の次は、エディタによる編集環境の構築を紹介したいと思います。
SublimeTextを使うことで、ghc-modの補完機能、ghciの対話実行環境サポートが受けられます。
SublimeTextもマルチプラットフォームをサポートしていますので、Stackと合わせて、OSによらないHaskell開発環境を構築することができます。