kanetaiの二次記憶装置

プログラミングに関するやってみた、調べた系のものをQitaに移して、それ以外をはてブでやる運用にしようと思います。http://qiita.com/kanetai

macでHaskell環境構築メモ

動機

新言語Swiftとか色々な言語でで関数型プログラミングをサポートし始めたので、ちょっとかじっておきたかった。
学ぶなら純粋関数型言語ということで、言語はHaskellにしますた。
プログラミングHaskell
参考書はプログラミングHaskell
訳者のサポートページhttp://www.mew.org/~kazu/doc/book/haskell.html

中古で買ったので、結構書き込みがあった。
ざっと読んだかんじだと、他言語の入門書のような感じではなく、
少しアカデミックな(高専とか大学で使う教科書のような)感じ。
(他のHaskellの本がどんな感じかは知りませんが)
まだ、そんなに読んでませんが日本語訳は非常に読みやすいです。

コンパイル 実行環境

コンパイラ

GHC(Glasgow Haskell Compiler)というのが主流っぽい。
バイナリ(コンパイラ)とインタラクティブシェル(インタプリタ)両方ある。
Hugsというのもあるけどこちらはインタプリタだけで軽量らしい。

brew update
brew upgrade
brew install ghc haskell-platform

↑を試みたがビルドで失敗してるっぽい。
Marvericksだとgccがclangのエイリアスになってたような気がしたので、

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb
alias gcc=gcc-4.2

を試したが、駄目でした。
適当にググって他に依存してそうなものをインストールし直してみたけどやはり駄目。

結局、http://www.haskell.org/platform/mac.html においてあるpkgをDLしてインスコ
はじめからそうすれば良かった...
パッケージと同じページにclangの件対処用スクリプトがあるので↓みたいな感じで実行

sudo cp ghc-clang-wrapper <mydir> #<mydir>=/usr/binとか
cd <mydir>
sudo chmod 0755 ghc-clang-wrapper
sudo ghc-clang-wrapper
動作テスト

コンソールで実行できるかテスト.
ghciでインタラクティブに実行できる。
おわるときは:quit.
とりあえず、お決まりのハロワ。行ったこと無いけど。

$ ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> "Hello Work"
"Hello Work"
Prelude> :quit
Leaving GHCi.

Haskell IDE

Eclipseが既に入ってあったので、eclipseFP(Functional programming support for Eclipse) を使ってみた。
新しいソフトウェアのインストールから http://eclipsefp.sf.net/updates を入力してインストール。
プロジェクトを作って、src/Main.shにハロワを書いて実行してみる

main = print("Hello Work.")

コンソールでmainと打つと、ハロワが表示される。
めでたし。めでたし。

Eclipse以外にもいくつかIDEがあるけど(そっちの方がメジャー?)
とりあえず動かしたいだけだったのでeclipseFPだけでいいかな。