Haskellのインストール Stack編
OCamlの本を読み終えて、積読になってたHaskellの本を読み始めました。
「関数プログラミング実践入門」(増補改定)という本です。
以前読んだときは、なんか分かりづらい話だな!と思いましたw
関数型プログラミングの本を数冊読んだ今、再読してみたら、分かりやすい説明だと思えるようになってましたw
(まあ、以前の自分がポンコツだっただけの話ですね!汗)
以前、WindowsパソコンにHaskellの実行環境をインストールしたときは、公式の「Haskell Platform」というインストーラーを使いました。
本書では「Stack」というHaskellのパッケージ管理ツールを使って、Haskellをインストールする方法が紹介されてました。
(p.47)
●Haskell環境の構築
Haskellのプログラミング環境を整えるには、Stack(http://docs.haskellstack.org/en/stable/README/)を使うのが一般的です。
Stackは、コンパイラとしてGHCを利用、ビルドツールであるcabal-installをラップし、「依存関係に問題を起こすことなく正常にビルドできることが保証されたパッケージ群」としてメンテナンスされているStackageを利用する、便利な開発ツールとなっています。
PythonのVirtualenvやRubyのRVM(Ruby Version Manager)、rbenvのようなものをイメージしてください。
以降、本書で解説に使うのは「Stackage LTS Haskell 7.*」系です。
GHCのバージョンとしては「8」になります。
ただし、GHCのバージョンによって大きく変化があるような部分については本書では扱わないので、あまり気にしなくても大丈夫です。
今回は、Stackを利用して、Haskellをインストールしてみたいと思います。
The Haskell Tool Stack
How to install
:
On Windows, you can download and install the Windows 64-bit Installer.
For detailed instructions and downloads, including many additional operating systems, check out the install and upgrade page.
Stackは、Windows用のインストーラーが用意されていました。
https://docs.haskellstack.org/en/stable/install_and_upgrade/
We recommend installing to the default location with these installers, as that will make stack install and stack upgrade work correctly out of the box.
64ビット版のインストーラーをダウンロードしてみます。
Stackのインストール
2018年9月現在では、「stack-1.7.1-windows-x86_64-installer.exe」というインストーラーでした。
これをダブルクリックして、実行します。
インストールが始まって、デフォルトの設定を選んで進んだら、あっさりインストールが完了しました!
そのまま「Next」をクリック。
そのまま「Install」をクリック。
あっという間にインストール完了!
動作確認
それでは、Stackの動作確認を行なってみます。
(うまく動かない場合は、念のためパソコンを再起動しておくと良いかも?)
(p.48)
●対話的インタープリタGHCiの基本的な使い方
対話的インタープリタGHCiを起動してみましょう。
Stackをインストールした環境を起動してください。
まず以下のように実行すると、GHCがインストールされます。
コマンドプロンプトの画面を開いて、「stack setup」と入力したら、GHC(Haskellの本体)のインストールが自動的に開始されました。
(p.48)
次に、ターミナル上でstack exec ghciとタイプして[Enter]を押すと、対話的インタープリタGHCiが起動します。
なお、setup時にstackの設定ファイルが作成されており、この設定ファイルに従い、同じくsetup時にインストールされたGHCが適切に選択されます。
コマンドプロンプトの画面を開いて、「stack exec ghci」と入力しました。
そしたら、「Updating package index Hackage」という更新作業?がドーッと始まって、しばらく待ってたら、GHCiインタープリタのプロンプトが表示されました。
バージョンの確認
Haskellのバージョン確認
コマンドプロンプトで「stack ghc -- -V」と入力。
→本日時点では、「8.4.3」になってました。
Stackのバージョン確認
コマンドプロンプトで「stack --version」と入力。
→本日時点では「1.7.1」になってました。(さっきダウンロードしたやつですね)
Haskellの動作確認
Prelude> というところに「1+2」と入力して[Enter]キーを押してみます。
「3」と表示されたら、Haskellの動作確認はOKです。
GHCiインタープリタの呼び出し方法についてですが、
以前、Haskell PlatformでWindowsにHaskellをインストールしたときは、コマンドプロンプト画面で「ghci」と入力するだけで起動できました。
今回、StackでWindowsにHaskelをインストールした場合は、コマンドプロンプト画面で「stack exec ghci」と入力しないとGHCiインタープリタが起動しませんでした。
ちょっとだけですが、タイプ量が増えて面倒くさくなりましたね?
(まあ、いいかw)
Haskellのバージョン切り替え方法?
本書は、Haskellのバージョン8.0系を使った説明なので、最新の8.4系ではなく古い8.0系にしたかったのですが、自動的にインストールされたHaskellは最新の8.4.3になってました。
もしこれで不都合があれば、Haskellのバージョンを切り替える方法も調べてみたいと思います。
(いざとなれば、Haskell Platformで指定のバージョンを強制的にインストールしちゃえばOK?)
そもそもStackって何?
Stackを使えば一体何かできるのか?
今のところ全然知らないので、少しずつ慣れていきたいと思います。
stack は Haskell で開発を効率良く行うためのビルドツールです。(ghc のインストールやパッケージ管理まで全て行なってくれます)
Stackageとは?
Stackage は Stable Hackage の略で、どんな組み合わせでも依存関係でエラーが起きないように調整されたパッケージの集合 (スナップショット) を提供しています。
- Hackage:Haskellのライブラリー集
- Stackage:依存関係が調整されたHackage
ということみたいです。
本書でも、StackやStackageについて、少し説明があったので、必要になったら使い方を学んでみたいと思います。
とりあえず、Stackを使ってWindowsにHaskellの実行環境を用意することができました。
本書を読んで、Haskellの復習を進めてみたいと思います。
[増補改訂]関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus)
- 作者: 大川徳之
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る