放射状

勉強のメモ。

やっぱり副作用が気になるんじゃ ~haskellもかじることにする~

('A`).。oO(副作用がない世界ってどんな世界なんだろう…)
('A`).。oO(CLISPのモンスター本でもことあるごとに「Haskellもいいんじゃない?」って言っていたっけ…。挙句には副作用警察みたいな漫画まで載ってたっけ…)
('A`).。oO(F#はC#の仕様にどうしても引っ張られてしまう部分があるだろうから、どうしても関数型言語としては妥協せざるを得ないところがあるかもしれないな…(別に根拠はない))
('A`).。oO(気になる…代入の一切ない世界気になる…)

というわけでHaskellはじめました。

環境作成~とりあえずREPLで動きが見られればいい人向け~

例によってぬるいプログラマなのでWindows上で環境構築します。

  1. ここからインストーラをダウンロードしてきてインストール
  2. sublime text 3をインストールしてパッケージコントロールを入れて、以下のパッケージをインストール
    1. IME Support
    2. SublimeREPL
  3. 動作確認。
    1. 最初にsublimeのメニュー「View>Layout」で画面を二つぐらいに割っておく。
    2. Tools>SublimeREPL>Scheme>Haskell」を選択。REPLが立ち上がる。
    3. REPLが出てない方のウィンドウカーソルを合わせて、「1 + 1」とを入力し、「hogehoge.hs」とかそんな感じのファイル名で保存する。
    4. hogehoge.hsを表示しているウィンドウにフォーカスがあることを確認してから、「Ctrl+,+f」を押す。REPL画面のほうに「2」と出たら成功。

環境作成 ~ちゃんとビルドしたい人向け~

意外とこのあたり面倒でした。

  • ↑の作業が終わってから、sublime textに「SublimeHaskell」というパッケージを入れます。
  • そのままsublimeを再起動すると、「hdevtoolsとか入れろよこの野郎」と怒られます。
  • 管理者権限でコマンドプロンプトを実行し、以下のコマンドを順に叩いてください。cabalはHaskellのパッケージコントローラです。
cabal update
cabal install cabal-install
cabal install stylish-haskell
cabal install haskell-docs
cabal install ghc-mod
runhaskell Setup.hs configure --user
runhaskell Setup.hs build
runhaskell Setup.hs install

最後にインストールしたディレクトリのパスが出るのでコピー。

  • sublime textを開いて、メニューの「Preferences >> Package settings >> SumblimeHaskell >> Settings - User」を選択。
{
	"add_to_PATH":
    [
        "C:\\Users\\radial\\AppData\\Roaming\\cabal\\bin"
    ],
    "enable_hdevtools": true
}

こんな感じに書いて保存してください。パスはさっきhdevtoolsをインストールしたときのパスです。

  • sublime textを再起動する。
  • 以下のような感じで打ち込んで「test.hs」とかいう名前で保存する。
main::IO()
main = putStrLn "Hello world!"
  • メニューの「Tools >> Build >> Haskell」を実行。ビルドされてhello world!とか出たら成功。

REPLとSublimeHaskellの併用

普通に動くんだけれど、REPLで動くコードがSublimeHaskellでビルドできるわけではないので(逆も然り。このあたりまだよくわかっていない)、ちょっとSublimeHaskellのエラー表示とかが鬱陶しいなーと思うことがあります。
なので、勉強し始めはREPLだけでいいかもしれませんね。

疲れた

まだぷよクエのガチャピンクッキー集めないといかんのや。