特殊ケースを排除する
/mrsekut-book-APoSD/6.8 コード内の特殊ケースを排除する
選択に対する実装例
こんな型がある時
code:hs
type Selection = (Position, Position)
2つのアプローチを取れる
code:選択なしを特殊ケースとして定義する.hs
data S = S Maybe Selection
code:選択なしを特殊ケースとして表現しない.hs
data S = S Selection -- 選択がない場合は(0,0)
中心に据える概念を見直す
ことで、スッキリ軸が通る解釈を探す
関連
入力の型を厳格にすることでhandlingを避ける