stylesheet

2018-01-14

Hなこと始めました

すぐに仕事で使えそうな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が最初の教材として良さそう。