すぐに仕事で使えそうなKotlin、熟練者から最強との呼び名が高いRust。 どちらにしようか迷ってたはずなのに、なぜか、2018年度のお勉強はHaskellに決まりました。
関数型言語はEmacsの設定ファイルをコピペ位しかしたことがないド素人です。
環境構築
Stackというツールでコンパイラやパッケージ管理などをまとめて導入するのがトレンドらしい。
*unix系はインストールスクリプトが用意されているのでコレを使用。
$ curl -sSL https://get.haskellstack.org/ | sh
elementaryOSがうまくubuntuとして扱われなかったので、インストールスクリプトを少し編集。
@@ -387,7 +387,7 @@
fi
case "$DISTRO" in
- ubuntu|linuxmint)
+ ubuntu|linuxmint|elementary)
do_ubuntu_install "$VERSION"
;;
debian|kali|raspbian)
最新版にアップグレード、GHCの導入。
$ stack upgrade
$ stack setup
REPLでHello World。
$ stack ghci
Prelude> putStrLn "OK! Haskell."
OK! Haskell.
ちゃんとソースファイルを作ってHello World。
[hello.hs]
main :: IO()
main = putStrLn "Hello!"
runghcで直接実行できる。
$ stack runghc hello.hs
Hello!
もちろんコンパイルもOK!
$ stack ghc hello.hs
[1 of 1] Compiling Main ( hello.hs, hello.o )
Linking hello ...
$ ./hello
Hello!
IntelliJへプラグイン導入
主なプラグインとしてIntelliJ-HaskellとHaskForceが見つかったが、今回は開発が活発そうなHaskForceを採用。 SettingsのPluginsからインストール。
HaskForceはlint等が統合されているようなので追加インストール。
$ stack hlint hindent stylish-haskell
HaskForce側でパスを指定。 Settings > Other Settings > Haskell ToolsでAuto Findボタンをぽちぽちしていく。
教材
入門としてすご〜いHな本がお奨めされているが、むっつりスケベな僕はオンラインで済ますことにする。
手始めにウォークスルー Haskellが最初の教材として良さそう。