Haskell > 本 > 入門Haskellプログラミング > LESSON 4
入門Haskellプログラミング †
入門Haskellプログラミング Will Kurt 翔泳社 2019-07-31 ¥ 4,104 |
LESSON 4 †
レッスン4で学ぶ内容
- ファーストクラス関数の定義
- 関数を他の関数への引数として使用する方法
- 関数の計算を抽象化する方法
- 関数を値として返す方法
4.1 引数としての関数 †
関数を他の関数への引数や他の関数からの戻り値として使用することができます。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
*Main> ifEvenInc 4 5
*Main> ifEvenDouble 10 20
*Main> ifEvenSquare 20 400
動作OK
関数は演算子よりも優先順位が高い †
*Main> inc 2 * 3 9
inc 2 が先に計算されて3になる。
3 * 3 = 9になる。
2 * 3が先に計算されて、inc 6 = 7、とはならないことに注意!
カスタムソート †
関数を他の関数に渡す用途の1つはソートです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
*Main> names [("Ian","Curtis"),("Bernard","Sumer"),("Peter","Hook"),("Stephen","Morris")]
*Main> sort names [("Bernard","Sumer"),("Ian","Curtis"),("Peter","Hook"),("Stephen","Morris")]
*Main> sortBy compareLastNames names [("Ian","Curtis"),("Peter","Hook"),("Stephen","Morris"),("Bernard","Sumer")]
並び替えOKでした。