Hakellの始め方(2)ソースコードの実行
昨日は、Haskellの環境を構築するところまで済んでいました。今日は、HaskellのソースファイルをGHCiにロードして、実行する方法を記述していきます。
実行するソースは、入力した数の階乗を求める関数です。
ソースコードは、https://stuff.mit.edu/iap/hackhaskell/の
https://stuff.mit.edu/iap/hackhaskell/examples/sequence.hsを参考にしました。
factorial :: Integer -> Integerfactorial 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 1lucas = fibo_like 2 1
*Main> take 15 fibonacci
[0,1,1,2,3,5,8,13,21,34,55,89,144,233,377]