練習用コードを書くために

以下、Windows7 + Haskell Platform + Cygwinの環境下でのメモです。

練習のためのコードを書くために

Haskell Platformでは

ghc
コンパイラ。ネイティブバイナリを生成。
ghci
対話型の簡易インタプリタ
runghc
スクリプトの実行。

Haskellプログラムを実行できるものとして入ります。ということでghciを使えば色々練習できるかな…と思ったのですが、Pythonとは違い複数行の関数が宣言できない模様。残念。

なのでファイルに書いてghciから読み込むようにします。
また、ghciの標準入力はアレなので*1、rlwrapを使いましょう*2
さらに、Cygwinでghci実行すると、ghcii.sh実行してちょーだい、ってでるのでghcii.shを使います。

やったこと

1.hs

-- 関数定義の基本
add :: Int -> Int -> Int
add a b = a + b

-- パターンマッチ
factorial :: Int -> Int
factorial 0 = 1
factorial n = n * factorial (n-1)

実行

$ rlwrap ghcii.sh
GHCi, version 7.4.1: 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> :l 1.hs
[1 of 1] Compiling Main             ( 1.hs, interpreted )
Ok, modules loaded: Main.
*Main> add 1 2
3
*Main> factorial 10
3628800
*Main> :q
Leaving GHCi.

余談

ここまでで一番時間かかったのは、久しぶりに起動したCygwinのアップデートだったことは想像に難くないことでしょうorz*3

ToDo

*1:scalaとかもそうですが

*2:Emacs使っとけば悩むこともないですし、色々ハッピーな気がしますが、Windows環境ではあまり使いたくない…。

*3:rlwrap入れるのに調子に乗って最新版のsetup.exe実行したのが運の尽きであった。