ghci複数行定義
量子論がひと段落ついたので、ghciを実験。
ghciを、関数試験用として利用価値を高めるため、複数行にわたる関数定義の書き方をば。
Prelude> :{ Prelude| let { Prelude| fibo 1 = 1; Prelude| fibo 2 = 1; Prelude| fibo n = fibo (n-1) + fibo (n-2) Prelude| } Prelude| :} Prelude> fibo 5 5 Prelude> fibo 30 832040
フィボナッチ数列。
要は、
:{
~
:}
で括ってやればよいんですね。
Prelude> :{ Prelude| let { f :: Int-> Int; Prelude| f k = 2*k Prelude| } Prelude| :} Prelude> f 2 4
このように、型を定義してやることもできる。
型クラスを使った定義を同様にすると、
Prelude> :{ Prelude| let { Prelude| f :: Integral a => a -> a Prelude| ;f 1 = 1 Prelude| ;f n = n * f (n-1) Prelude| } Prelude| :} Prelude> f 4 24
と、やっぱりこれも大丈夫。
これで関数試験としての利用価値が高まりますね!