えせはらさん( @esehara )のブログ(蟲!虫!蟲! - #!/usr/bin/bugrammer)の以下の投稿を読んで。
変数に代入せず、関数でandやorで判定しているときに気をつけたいこと
その関数、メソッドは他に副作用を持つか?または副作用を持ったあとに、何かしら値を使う必要があるか?
ということに注意しないといけない。もし、上記に当てはまる場合は、真偽値を一度変数に代入して持っておき、あとでそれをandやorによって比較したほうが安全だと思う。
よく使うなら、その都度変数に代入してその変数を使う(2回書く必要がある)のも大変だし、あれば便利かなぁと思ってショートサーキット評価(短絡評価)を避けるための関数(ロングサーキット評価?)を書いてみた。