0531
ようやくハイラル救いました。だいたい3週間?祠とかはぜんぜん回ってないけれど。攻略はガノンドロフ戦だけちょっと見た。
みんな言っていることだけど音響がすごくよかった。曲自体ももちろんよかったし、状況に合わせて音楽を調整するのもものすごくよかった。すごすぎる。こんなゲームに中高生の頃に出会っていたら、ゲームプログラマーを目指していたかもしれない。
配列に対して、そのすべての要素がある条件を満たすときtrueを返す関数を実装するとき、空配列に対して何を返すか、という議論が流行っていた。
述語論理を知っていれば、これはvacuous truthのことだなと思ってtrueを返すだろう。もちろん述語論理の話がそのまま常に適用可能かというとそうではないが、このケースでは、配列を2つに分割した場合の振る舞いの合成を考えるとtrueにするほかない。それに、論理学と日常言語の乖離を問題にするなら、OR演算がXORではないことも問題にしなければならないだろう(同様に問題にするという立場はあるが、僕としては支持できない)。
falseにする立場は擁護しづらい。想定外の状況であることを示すのに例外やNULL(や停止)を用いるのではなく正常系でも返ってくるような値を用いてはならない。
「要件による」という回答がしばしば見られたが、これもあまり適切とは思わない。呼び出し側の意図のレイヤの話は呼び出し側でやっておくべきことで、ここで実装すべきものは書かれている通り以上のものではない。(ただし、こういったエッジケースは混乱を招きがちなので、業務で出会ったら事前に確認するだろう)
こういう回答からは、それが思慮深さのポーズであるがゆえにそうしているようなわざとらしさを感じてしまう。トロッコ問題に頓智で回答しようとすることと似ているかもしれない。ここは思慮深さや頭の柔らかさを競い合う場ではない。
それはそれとして、こういう問題への回答をプログラミングのセンスと関連づける主張もあったが、わりとセンスというより知識問題だとは思う。センスがあれば知らなくても正しく決められるのかもしれないが、知識があればできることを知識なしでやることにそれほど大きな意味があるとも思わない。
寝ます。明日は健康診断に行く。