配列が空かどうか判別するときはunlessよりもif notのほうがわかりやすい気がする
unless array.empty? end
これがなんかわかりにくい、なぜか。おそらくunlessって単語が体にしっくり来てないのかも。なんか直感的でない。ネイティブの人なら直感的なのかもしれない。これはunlessを読んだ時点で 「〜ではない、ではその〜とは何か」という思考をしながら読むからだと思う。頭のなかに「〜ではない」という状態を保持しておくのにはコストが掛かる気がする。仮定と否定の状態をまとめて一度に脳内にストックしておくコストは膨大なのではないか。
一方、シンプルに
if not array.empty? end
こうすると、脳内で最初に「もし」という単語がスタックされ、これはコストが極めて低い。そしてその後に「否定」であるnotがスタックされて、「配列は空か?」がスタックされて脳によって順番に意味を判断する、みたいな感じでさっきの例よりも理解がしやすい気がする。