Haskell入門(五)高階函式(higher-order functions)
參考教材 :Learn You a Haskell for Great Good (http://learnyouahaskell.com/)
操作環境 :Ubuntu下Linux64位虛擬機器
python入門程式設計, 之後用c++學習資料結構,Haskell萌新。
由於對Haskell中一些詞語的中文翻譯並不瞭解,接下來的內容中重點名詞將有英文和我理解的中文。
Chapter5主要內容
調製函式(curried function)
在前面學習的函式裡,我們理解的函式通常接受一個或多個引數(parameter),並返回對應的結果,而這個結果也通常以引數的形式表示。這裡我們討論調製函式。調製函式總是僅僅接受一個引數,不同的是它返回值可以是函式,返回的函式可以再接受下一個引數,以此類推。
例子:max
我們在前面的學習過程裡用到的max獲取兩個可以比較優先順序的同類參量,返回其中的較大值。從調製函式的角度思考這個函式,我們會有另外的發現。

max函式
通過:t max 我們可以看到max函式的宣告。由於->符號是右結合的,我們又可以把它寫成a -> (a-> a)的形式。也就是說,max函式獲取一個引數,返回宣告為a->a型別的函式。如果我們輸入max 4,我們獲取到的正是這個函式。然而,由於Haskell並不瞭解a->a型別的函式要怎麼輸出,這一輸入在命令列狀態下會報錯。