52
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Stackを使ったHaskellのインストール

Last updated at Posted at 2016-06-23

はじめに

今までは、GHCを直接インストールして使っていたが、stackを使う方が簡単らしいので、導入方法についてまとめました。

Macの場合

brewで入れるのが簡単。

$ brew install haskell-stack

グローバルの設定を行う場合は、~/.stack/global-project/stack.yamlを開いて設定する。今回は、Haskellのバージョンを設定するresolverのところを最新版にしてみる。

resolverはLong-Term-Supportのバージョンで指定するのが一般的。例えば、次のようにする。

resolver: lts-5.17

あるいは、直接GHCのバージョンで指定してもOK

resolver: ghc-8.0.1

もしくは、最新版をビルドの日付で指定しても良い。

resolver: nightly-2016-06-01

ちなみに、stack.yamlの全体で次のようになる。

flags: {}
extra-package-dbs: []
packages: []
#extra-deps: []
extra-deps:
- pipes-http-1.0.2

#resolver: lts-5.17
#resolver: ghc-8.0.1
resolver: nightly-2016-06-01

(#から始まるのはコメント)

extra-depsは、特別に依存しているライブラリを入れる場合。通常はプロジェクトごとのstack.yamlで設定するので、グローバルのstack.yamlには入れなくて良い。

stack.yamlの設定ができたら、

$ stack setup

を一回実行する。

Windowsの場合

chocolateyで入れるのが簡単なようだが、試していない。
自分は、
https://github.com/commercialhaskell/stack/releases/
からWindows 64ビット版インストーラをダウンロードして実行した。

グローバルの設定は、

%USERPROFILE%\AppData\Roaming\stack\global-project\stack.yaml

を編集して行う。編集内容は、Macのときと同じ。

そして、コマンドプロンプトから

> stack setup

を実行すればOK

最初のアプリケーション

適当な作業ディレクトリに移動して

$ stack new app1

これで、app1ディレクトリが作成され、そこにアプリの雛形が作成される。
stack.yaml は、このアプリケーションで使う設定ファイル。Haskellのバージョンや読み込む外部ラリブリを設定出来る。
app1.cabal も、このアプリケーションで使う設定ファイル。ライブラリの依存性などを設定する。

今回は、設定は何も変更しない。最初に、一度buildを行う

$ stack build

(stack.yamlやapp1.cabalを変更したときも、stack buildを一度実行する)

app/Main.hsを編集する。今回は、何もモジュールを使わないので、次のようにする。

module Main where

main :: IO ()
main = print "Hello World!"

そして、実行

$ stack runghc app/Main.hs

"Hello World!"と表示されれば成功

追記

開発環境を充実させていくには、
http://qiita.com/td2sk/items/9e4b49a4a31b7138d3ad
に丁寧な説明がある。

2018/04/24追記

GHSとバージョンの対応はこちらを参照
https://wiki.haskell.org/Base_package

52
53
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?