real world haskell 第3章 練習問題 P71
1.リスト中の要素数を数える関数を書きなさい。
2.ソースファイルに1.で作った関数の型シグネチャを追加しなさい。
myLength :: [a]->Int <=型シグネチャ myLength (_:xs) = 1 + myLength(xs) myLength [] = 0
================================= ghc> myLength [] 0 ghc> myLength [1] 1 ghc> myLength [1,2] 2 ghc> myLength [1,2,5] 3 ghc> myLength "abcde" 5
3.リストの平均値を計算する関数を書きなさい。
myAverage x = (fromIntegral (sum x)) / (fromIntegral (length x)) myAverage x = sum' / length' where sum' = fromIntegral (sum x) length' = fromIntegral (length x)
myAverage [1,2,3] 2.0 myAverage [] NaN