はじめての Haskell
Haskell をちょくちょく触ってみていて、メモが溜まってきたのでこれをまとめた。
(2018-07-19)「Haskell の学び」を変更・追記した。
Haskell とは?
- 関数型言語
- 「ハスケル・カリー」さんから名前をとっている(だけど開発者は全く別)
- 最新の言語仕様は Haskell 2010
- モナドで有名だけど圏論の知識は必須というわけではない(らしい)
Haskell の学び
チュートリアルのオススメはこの二つ。
- How to write a Haskell program - HaskellWiki
- 短くてシンプル。
- Learn You a Haskell for Great Good!
- 一つ目と比べると詳しめ。
- 図解入りで楽しい。
モナドの説明など概念的な説明は日本語の方が嬉しいと思うが、それにはここがわかりやすい。 基本的に「日本語でおk」な説明のサイトが多いので、読んでいて意味不明だったらすぐに違うソースを探した方がいい。
入門書籍はいまのところ使っていないが、この辺りがテッパンらしい。 ちなみに、2番目の「すごいHaskellたのしく学ぼう!」は上で紹介した「Learn You a Haskell for Great Good!」の邦訳版である。 個人的に3番目を読んでみたいのだが、電子書籍版がないため躊躇している。
- 作者: Graham Hutton,山本和彦
- 出版社/メーカー: オーム社
- 発売日: 2009/11/11
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 503回
- この商品を含むブログ (117件) を見る
- 作者: Miran Lipovača,田中英行,村主崇行
- 出版社/メーカー: オーム社
- 発売日: 2012/05/23
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 580回
- この商品を含むブログ (73件) を見る
ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
- 作者: 青木峰郎,山下伸夫
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/10/05
- メディア: オンデマンド (ペーパーバック)
- この商品を含むブログを見る
インストール
macOS 環境なら Haskell Platform の利用が推奨されている。 Haskell Platform には以下のツールが入っていて、これをインストールするだけですぐに Haskelll 開発が始められる。
- GHC(コンパイラ)
- Cabal(パッケージ管理)
- Stack(ビルド自動化)
- プロファイリング、カバレッジ測定ツール
- 35 のコアパッケージとその他メジャーなもの
Haskell Platform は Homebrew-Cask 経由で簡単にインストールできる。
brew cask install haskell-platform
エコシステム
エコシステム | 概要 | 他の言語での対応 |
---|---|---|
GHC | デファクトスタンダートなコンパイラ実装。 | gcc (C) |
Hackage | パッケージリポジトリ。 | PyPI (Python) |
Cabal | パッケージ管理ツール。基本的には Hacakge から取ってくる。 | pip (Python), npm (Node.js) |
Stackage | Stable Hackage の略。依存関係でエラーがでないように調整されたパッケージセットのこと。 | 該当なし(他の言語ではパッケージ開発者が決めている) |
Stack | ビルド管理ツール。 | Gradle (Java), Bundler (Ruby) |
HLint | コードスタイルチェックツール。 | pylint (Python) |
Hoogle | リファレンス検索サービス。記号類も検索しやすい。 | 該当なし |
開発エディタ
Language Server 実装の一つで VSCode などで使える。 VSCode の Market Place で検索すれば Haskell Syntax Highlighting に次いで一番上に出てくるので、普通に見れば間違えることはないかと。 Language Server 実装はいくつかあるものの、これが一番実用レベルでよろしい。(参考)
IntelliJ の Haskell サポート用プラグインがある。
IDEA でインストールできることを確認している。