0. 目次: 1. 型を処理する高階関数を考える視点 2. リストのデータコンストラクタを置き換える関数 a. reduceList 関数の定義 b. reduceList で要素を足し上げる c. reduceList で同じ値を返す d. reduceList から map 関数を導く e. reduceList から filter 関数 f. 述語を満たす要素に、特定の関数を適用する g. reduceList からリストを結合する関数 h. reduceList でリストを逆順にする関数 i. Haskell の標準ライブラリにある foldr 3-1. 二分木でデータコンストラクタを置き換える関数 (1) – 左右の子が必ずある場合 a. reduceBinaryTree 関数の定義 b. reduceBinaryTree 関数から、map, filter 関数を導く 3-2.