[Haskell筆記]復合函數

復合函數是指使用一個函數的輸出作為另一個函數的輸入。數學中,符合函數是這麽寫的:

f∘g(x) = f(g(x))

相應的,Haskell中復合函數也有兩種寫法:

(f . g) x

f (g x)

練習

15.1 定義求柱體體積的函數為底面積乘高及求圓面積函數、求矩形面積函數。分別用兩種方式寫出利用復合函數求圓柱體及立方體體積的表達式。


答案

14.1 無論輸入的是什麽數字,輸出均為-1。因為

myCase _ = -1

排在最前,覆蓋了後面的語句。要避免這一情況,需要將這一句放在最後。事實上,如果沒有這麽放在最後,GHC會警告:

Warning: Pattern match(es) are overlapped
          In the definition of `myCase':
              myCase 0 = ...
              myCase 1 = ...
              myCase 2 = ...

Leave a Reply

Spam Protection by WP-SpamFree