契約
2021/3/19 22:46:00
契約を集合論に則って表現できたとする。
その契約は演算可能となる。
演算可能ならばテスト可能である。
契約を集合として表現すればテストできる。
関数の引数と返り値をassert(表明)や型でチェックするプログラミングのスタイル。
assertでチェックするのは当たり前の前提のチェックにとどめると良いらしい。例えば、「ユークリッド距離は負数を返さない」など。
関数を使うときに、呼び出しのネストが浅いところでassertでエラーになって、どういう間違いをしているか教えてもらえると楽。
さらにいうと、引数が型になっていて、エディターが間違いを教えてくれるともっと楽。実行しなくても間違いに気づけるので。