2023年6月1日のブックマーク (2件)

  • 「配列のすべての要素が条件を満たすなら True を返す」関数を定義するとき、空の配列を渡したら True を返すべき数学的説明

    発端 @fumieval 様のツイート。 空の配列を渡したら True を返すべき この関数に空の配列を渡したら True を返すべきである。仕様によるとか状況によるとか相談すべきとか例外を返すべきかもといった意見もあるようだが、議論の余地がないレベルで True を返すしかない。最大の理由は 「True を返さないと、空集合があらゆる集合の部分集合になるというルールに矛盾するから」 である。これは数学における集合論の定理のひとつであり、「これを認めないとそれに連なる集合論のすべてが瓦解する」というルールのひとつであって、認めない相応の理由があるとすれば「数学のもっとも基礎的なルールのひとつを覆してでも実現しなければならないことがある」という次元での話になる。 少なくとも私は 10 年以上プログラミングをしていてそんな状況に遭遇したことはない。 【2023/06/01 追記】 数式がわから

    「配列のすべての要素が条件を満たすなら True を返す」関数を定義するとき、空の配列を渡したら True を返すべき数学的説明
    flont
    flont 2023/06/01
    元ツイートは「x + 0はxだよね」ぐらいの自明な話だったんだろうけど「仕様による」派が一定数いて驚いたろうな / 「仕様が間違ってるかもしれないから仕様による」がありなら任意の問題の答えがそうなるわけで
  • 人に「センスない」って言っているやつが一番センスない - Qiita

    はじめに きっかけは、以下のツイートです。 「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡したらfalseを返すかtrueを返すかが、良いプログラマかどうかの一つの境目だ — ふみ a.k.a.DJ Monad (@fumieval) May 29, 2023 このリプライや引用リツイート欄では、Trueを返すべき、Falseかな、例外を返すべき、要件による、といった意見がありました。 建設的な議論ができるコミュニティは素晴らしいと思う反面、同じコミュニティに属するエンジニアに対して「センスがない」「プログラマを辞めてほしい」と言っている人がいて非常に残念です。 そのように敢えて煽り他人へのリスペクトが欠如している人が一番センスがないという話です。 元ネタと反応 「「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡

    人に「センスない」って言っているやつが一番センスない - Qiita
    flont
    flont 2023/06/01
    Vacuous Truthを知らなくてもセンスがないとは思わないが、ほぼすべての言語の標準ライブラリでtrueになっていることを経験的にも知らないんだなぁぐらいの評価にはなる