私の雑な理解
関数の引数と返り値をassert(表明)や型でチェックするプログラミングのスタイル。
assertでチェックするのは当たり前の前提のチェックにとどめると良いらしい。例えば、「ユークリッド距離は負数を返さない」など。
嬉しさ
関数を使うときに、呼び出しのネストが浅いところでassertでエラーになって、どういう間違いをしているか教えてもらえると楽。
さらにいうと、引数が型になっていて、エディターが間違いを教えてくれるともっと楽。実行しなくても間違いに気づけるので。
関数の引数と返り値をassert(表明)や型でチェックするプログラミングのスタイル。
assertでチェックするのは当たり前の前提のチェックにとどめると良いらしい。例えば、「ユークリッド距離は負数を返さない」など。
関数を使うときに、呼び出しのネストが浅いところでassertでエラーになって、どういう間違いをしているか教えてもらえると楽。
さらにいうと、引数が型になっていて、エディターが間違いを教えてくれるともっと楽。実行しなくても間違いに気づけるので。