/ 最近 .rdf 追記 編集 設定 本棚

脳log[20230531]



2023年05月31日 (水) 畳み込みの視点から見たforall(every)とexists(some): 空集合に対するforallは常にtrueになる - Lambdaカクテル」■Ruby もうまく定義されている言語のひとつ。自分の日記から「ところで空配列に関して、[].all? は true を返し、[].any? は false を返す。この違いによってメソッドの選択が制限されることがあるかなと一応警戒するんだけど、特にそういう違いは生まれないみたい。むしろそうならないようにデフォルト値が選ばれている。」■読んでたらモノイドと単位元の話になった。単位元だから true になったり false になったりするのだ(知らんかった)。それはこの前やらかしたやつ。「ST クラスの内部配列のサイズを2べきに揃えるときに埋める値がよろしくなかった。ACL などまともなライブラリのセグメント木を使ったことがあれば単位元がパラメータ(の1つ)だということがわかったはずだ。」■最後に chokudai さん出てきた。「・論理的にはtrue一択。false派は論理を勉強してほしい ・論理で判断できる項目でドキュメントを参照する手間を増やすのは良くないので、状況に拠らないで欲しい ・多くの環境では「全員が論理的に考えられる」と思わない方が良いので、ドキュメントやコメントは気を使うべき https://t.co/fovw2w1bIC」「「要件による」って言ってるたくさん人いるけど、要件は、「配列のすべての要素が条件を満たすならtrueを返す」であり、ここに「空配列はfalseにする」を入れるなら「配列の全ての要素が条件を満たし、空でないならtrueを返す」という要件にするべき。空配列がtrueはこの文章なら要件に入っている。」■これが一連の発端らしい。「「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡したらfalseを返すかtrueを返すかが、良いプログラマかどうかの一つの境目だ」 このお題で「要件による」と言ってしまう、要件を定義する立場であってほしくない良くないプログラマがいっぱい炙り出されているのだ。とはいえ、もっともやべーのは「false に決まってる」と考えてしまう人間だし、実は「true に決まってる」という態度も現実では危うい。PHP みたいにときどき常識が通用しない言語があるわけなので。Ruby だってドキュメントを読むまでは理解できない罠があったりする>「Ruby クイズ (複合代入編)」。■chokudai さん「「全ての要素が条件を満たすならtrue」って要件の関数は場合はtrue一択だけど、実務上の要件はそれに合致しているとは限らないので、違うのであれば、 ・関数名を変えて要件が違うことを明確にする ・配列の外で判定する とかの処理は当然やるのよ。」っていう、元になったツイートのスコープ外までフォロー入れてるのにクソリプついてるぽくてかわいそう。有名税か。読めてないからこそクソなのであってどうしようもないね。あるいは読んだ上で語調から馬鹿にしてるとお感じになったのかしら。馬鹿だからどうしようもないね。読めない人に言葉を費やしても、煙に巻こうとしてるとかなんかめっちゃ焦ってるとかって「印象」を与えることしかできなさそうで、不毛だと思う。無視すれば無視したで「効いてる効いてる」なんて勘違いをされそうなので、「ここに書いてある。これを読め。わかるまで読め」が正解か。