StackでHaskell開発環境構築【基本編】(追記あり)
Mintのリポジトリを利用しないで、Haskellのビルドツールの
Stackで開発環境を構築する手順をメモ(ΦωΦ)
[手順]
1. 以下のいずれかのコマンドをターミナルで実行。
$ curl -sSL https://get.haskellstack.org/ | sh
or
$ wget -g0- https://get.haskellstack.org/ | sh
2. バージョンを確認。
$ stack --version
Version 1.6.3 Git revision ....(リビジョン番号)
3. プロジェクトを作成。ここでは、test-mybot
$ cd workspace
$ stack new test-mybot
4. プロジェクトディレクトリへ移動。
$ cd test-mybot
※もし、インストールしたいライブラリがあったら、プロジェクト直下の
test-mybot.cabalファイルのbuild-depeds: セクションに定義すると5で
依存ライブラリもインストールされるらしい。
その際、test-mybot.cabalと同じ階層にpackage.yamlがある場合は削除
しておく。なぜなら、ある状態でstack buildすると自動的にhpackで
package.yamlをcabalファイルに変換するため。
※もし、他に追加でインストールしたいパッケージがあったら、プロジェクト
ディレクトリ直下の、package.yamlの「dependencies:」セクションに
追加したいパッケージ名を追加する。
※また、stack.yamlにデフォルト設定されているlts-10.1は出たばっかりで
対応しているパッケージが少ないため、「resolver: lts-9.21」にしておく
とよい。と、Twitterで詳しい人に教えてもらった。
※改めて、stack build を実行する。
dependencies:
- base >= 4.7 && < 5 <----- このあとに追加パッケージ名を追加
library:
source-dirs: src
5. プロジェクトをビルド。
$ stack build
※Version 1.6.1未満では、一度、stack setup でGHCをダウンロード
する必要があったが、1.6.3ではコンパイラのダウンロードとビルドが
同時に行われる。
6. プロジェクトを実行。
$ stack exec test-mybot-exe
someFunc <---- ここを「Hello, my bot!」と表示させたい
7. 出力を"Hello, my bot!"に変更。
/home/username/workspace/test-mybot/app/Main.hs から呼ばれる
/home/username/workspace/test-mybot/src/Lib.hs のsomeFunc の内容を
以下のように書き換える。
module Lib
( someFunc
) where
someFunc :: IO ()
someFunc = putStrLn "someFunc" <---- を"Hello, my bot!"に
8. プロジェクトを再ビルド。
$ stack build
9. プロジェクトを再実行。
$ stack exec test-mybot
Hello, my bot!
※"Hello, my bot!"が出力されればOK
※REPLを起動する場合
$ stack ghci
[参考サイト]