IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

すごいH本7章の概要

7章 型や型クラスを自分でつくろう

7.1 新しいデータ型を定義する
dataキーワードの紹介
7.2 形づくる
データ型定義の具体例を示す。
Circle(円)とRectangle(矩形)からなるShape型の作成。
Shape型の面積を求める関数を作成する。
Point型を作成し、上記のShape型を見通しよいコーディングにする。
上記をモジュール化してエクスポートする。
7.3 レコード構文
data型を作る別の方法の紹介とその使い分け
例はPerson,Car
driving (Show)したときの表示がわかりやすい。
7.4 型引数
data型の型コンストラクタの方法
7.5 インスタンスの自動導出
作成したdata型に適用できる典型的な関数を自動で作成する方法
7.6 型シノニム
実態は同じ型であるが、名前が異なる。
例は電話帳。
型シノニムで複数の型引数を使う。
7.7 再起的なデータ構造
リスト、ツリーのデータ型を再帰をつかって定義する。
7.8 型クラス中級講座
classキーワードを使って型クラスを定義する。
型クラスのインスタンスを作る。
例はTrafficLight型で、これをEq型のインスタンスにする。
7.9 YesとNoの型クラス
JavaScriptのifをエミュレートする例
7.10 Functor型クラス
Functor型クラスの説明。
Mapの拡張になっていることの説明。
例は、Maybe, Tree, Either
7.11 型を司るもの、種類
型に対するラベル付けの話。

自分の中での理解を図にすると下記。
f:id:naotoogawa:20140119180332p:plain