読者です 読者をやめる 読者になる 読者になる

euphonictechnologies’s diary

Haskell超初心者の日記です。OCamlが好きです。

follow us in feedly

Haskell + IntelliJ IDEAでゆるくHaskell入門する手始め

このエントリはバージョンアップグレード版があります

Haskell - 2015年のMac + Haskell + IntelliJことはじめ、あるいはghcの再インストール - euphonictechnologies’s diary

このエントリも部分的に役に立ちます。

IDEじゃなきゃやだやだ!

昔々、私がプログラミングを始めた頃はまだ手元にスクリーンエディタがなくて、ラインエディタしかなかった。それでも10000行を超えるプログラムを書いていたのだから人間、開発環境なんかなくても長いプログラムが書けるんじゃないかなって気がする。でもそれは十年以上前の話、当時すでにスクリーンエディタは存在していたし、WYSIWYGワープロもあった。時間が経つに連れてTurbo C、Visual C++と順番にリッチ環境でプログラムを書くようになっていった私はついにIDEのインテリセンスがなければ関数名も思い出せないようになってしまった。人間便利になれば退化するものだなと思う。人間なんて大上段から言ってるけど、要は私がボケたってだけの話なのかも。とにかくEmacsとかむつかしいからやだやだ!IDEが欲しい!というノービスHaskellerにおすすめなのがHaskell + IntelliJ IDEA。ideahプラグインというのがあってIntelliJの使い慣れたIDE上でHaskellが書ける。早速インストールから順番にやってみよう。環境としてはOSX Mavericsを想定している。

ちなみに

ideahは開発が止まっているようで、公式にあるプラグインはGitHubで開発が進められている:

Atsky/haskell-idea-plugin · GitHub

Haskell + cabal-install by homebrew

MacなのでhomebrewでHaskellコンパイラのghcとそのパッケージ管理システムcabalをインストールしよう。 やり方は簡単で

brew install ghc
brew install cabal-install

これだけ。 次にCommand line toolsをインストールする(後日談参照)。

xcode-select --install

からの

brew reinstall gcc          # まだinstallしていない場合は"install"で

で、gccがインストールできた。llvmに対応していないので、Maverics以降はgccが必須。

ここまではIntelliJ関係ない普通のGHCコンパイラのインストール方法。なので、ghcにパスが通っていることを確認すれば、シェルスクリプトから動作チェックをすることもできる。

$ echo "module Main where
>     main = do
>         print \"Hello, world.\"
> " > hello.hs
$ ghc hello.hs
[1 of 1] Compiling Main             ( hello.hs, hello.o )
Linking hello ...
$ ./hello
"Hello, world."

ghcのインストールは完了した。cabalは後で使おう。

IntelliJにHaskellプラグインを入れよう

私はここを参考にしながらプラグインを入れてみた:IntelliJでHaskellプログラミング - Qiita

入れるプラグインはこのプラグイン:JetBrains Plugin Repository :: Haskellで、Github上でコードで開発が行われている:Atsky/haskell-idea-plugin - GitHub

このプラグインは普通にIntelliJのプラグインブラウザからインストールできる。

Preferences -> Plugins (IDE Settingsセクション内), Browse RepositoriesからHaskellを検索ウィンドウにタイプして探してインストールしよう。

f:id:euphonictechnologies:20140731182935j:plain

ghc-modをインストールしてシンタックスチェック

これで、GHCコンパイラは準備完了、IntelliJにプラグインが入って最後にシンタックスチェックをIntelliJで走らせるためにghc-modを入れよう。これも簡単、cabalからインストールできる。まず、cabal updateでcabalをアップデートしよう。

$ cabal update
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install

指示通り、cabal install cabal-installしてアップグレードをしよう。

$cabal install cabal-install

少し時間がかかる。終わったら最後にghc-modをインストールしよう。

$cabal install ghc-mod

これで、準備完了。ghc-modの場所をプラグインの設定画面から教えてあげよう。

f:id:euphonictechnologies:20140731182942j:plain

こんなかんじになるはず。ghc-modとghc-modiは普通以下の場所にインストールされるはず。

  • ~/.cabal/bin/ghc-mod
  • ~/.cabal/bin/ghc-modi

これで、準備完了。

Hello, world.してみる

早速IntelliJを使ってHello, world.してみよう。

まずはFile -> New Project...からHaskellを選択。

f:id:euphonictechnologies:20140731190603j:plain

次の画面でプロジェクトの保存場所とプロジェクト名を決定したらFinishして新規プロジェクトを作成。 左ペインのsrcの中にMain.hsがあるのでMainモジュールを書こう。具体的には下のように

f:id:euphonictechnologies:20140731190731j:plain

以下のコードをMain.hsに書き込もう。

module Main where
    main = do
        print "Hello, world."

これを実行してみる。メニューからRun -> Run 'プロジェクト名'で実行する。

f:id:euphonictechnologies:20140731191115j:plain

たぶんこういうエラーが出るのでSDKを設定する。

f:id:euphonictechnologies:20140731191133j:plain

右の"New"ボタンを押すとSDKをたせるのでghcの場所を指定してあげよう。brewでインストールすると/usr/local/Cellar/ghc/7.6.3_2みたいな場所にインストールされるはず。

うまくSDKをインストールできると実行がすぐに終わって

f:id:euphonictechnologies:20140731191505j:plain

のように表示されるはず。 これで導入は完了。結構簡単だったのではないだろうか。これでIDEでバリバリコーディングができるね!