haiju's 開発メモ

開発に必要な情報を自分用にメモ

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

[参考サイト]

Home - The Haskell Tool Stack 

qiita.com