エラーがエラーを相殺してしまう著者: Allan Kelly コードは嘘をつきません。プログラムは必ず人間が書いたとおりに動きます。ただ、ある箇所で書いたことと、別の箇所で書いたことが矛盾していた場合、思いがけない動きをすることがあり得ます。 アポロ11号の月着陸船のソフトウェア設計を指揮したAllan Klumppは、あるインタビューで、エンジンを制御するソフトウェアにバグがあったことを明かしています。そのバグのせいで、着陸船の動きが不安定になる恐れがあったというのです。しかし、結果的にそのバグは別のバグによって相殺されたため、発見も修正もされず、アポロ11号、12号の月着陸は無事成功しました。 処理が完了したかどうかを戻り値で知らせる関数があったとしましょう。そしてその関数に、本来仕trueを戻すべき時にfalseを戻す、というバグがあったとします。さて、呼び出した側の関数が、戻り値の