Hakellの始め方(2)ソースコードの実行

 昨日は、Haskellの環境を構築するところまで済んでいました。今日は、HaskellのソースファイルをGHCiにロードして、実行する方法を記述していきます。

 

実行するソースは、入力した数の階乗を求める関数です。

ソースコードは、https://stuff.mit.edu/iap/hackhaskell/

https://stuff.mit.edu/iap/hackhaskell/examples/sequence.hsを参考にしました。 

 

factorial :: Integer -> Integer
factorial n = if n < 2 then 1 else n * factorial (n-1)

 

 まずGHCiを起動します。

 

stack exec ghci

 

ソースコードを保存したディレクトリ(ここではdirとする)に移動して、

:cd dir

 

:loadコマンドでソースファイルをロードして、実行する。

 Prelude> :load sequence

 そして、factorialを実行すると、

 

*Main> factorial 10
3628800
*Main> factorial 30
265252859812191058636308480000000

  実行できました。

 

ついでにフィボナッチ関数も実行してみます。

--(定義)
fibo_like :: Integer -> Integer -> [Integer]
fibo_like a b = a : fibo_like b (a+b)

fibonacci, lucas :: [Integer]
fibonacci = fibo_like 0 1
lucas = fibo_like 2 1

*Main> take 15 fibonacci
[0,1,1,2,3,5,8,13,21,34,55,89,144,233,377]