「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡したらfalseを返すかtrueを返すか問題
@fumieval: 「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡したらfalseを返すかtrueを返すかが、良いプログラマかどうかの一つの境目だ 当たり前
良いプログラマかどうかはどうでも良いkuroma6666.icon
そんなものはない.icon
論理的観点
@chokudai: 「配列のすべての要素が条件を満たすならtrueを返す関数」に対して、「要件に合わせてfalseを返す」を実装しちゃった場合の話(1/4) https://pbs.twimg.com/media/FxbggNVaEAAUHYf.jpghttps://pbs.twimg.com/media/FxbgkDKaIAAF4Rg.jpghttps://pbs.twimg.com/media/Fxbgm_pacAAyjSz.jpghttps://pbs.twimg.com/media/FxbgqZkakAAyKgB.jpg
・論理で判断できる項目でドキュメントを参照する手間を増やすのは良くないので、状況に拠らないで欲しい
・多くの環境では「全員が論理的に考えられる」と思わない方が良いので、ドキュメントやコメントは気を使うべき
ただ、氏の主張の一貫性がブレているような感じがあるkuroma6666.icon
条件・定義による観点
※元ツイではあくまでも以下のようにしか言及していない。
関連
それはそれとして
論理学(数学的)とプログラミング(ソフトウェア開発手段)が実現する目的はそれぞれ違うような...?
プログラミングに論理学を取り込むアプローチもあるが、そのアプローチが正というわけでもない
kuroma6666.iconは条件・定義による観点派
kuroma6666.iconの問題解釈
脳死でfalseを返そうとは思ってない
問題「配列のすべての要素が条件を満たすならtrueを返す」に対して
要素が存在しない空配列で条件(※)を満たすならtrueに倒したい
条件(※)を満たしていないのであればfalse
条件に空配列チェックについて考慮するかどうかで解釈はやはり変わるな…?
例外処理を投げられるような言語であれば、例外処理を投げても良い