アカウント名:
パスワード:
> 「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、> 空の配列を渡したらfalseを返すかtrueを返すか
https://www.perplexity.ai/ [perplexity.ai] :"「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡した場合、trueを返すべきです123。空の配列は、すべての要素が条件を満たすという要件に反するものではなく、真偽値を返す関数においては、空の配列を渡した場合にtrueを返すことが多いです。また、空集合はあらゆる集合の部分集合であるため、空の配列を渡した場合にfalseを返すと、ある種の矛盾が生じることになります1。た
想像だけど、「すべての要素が条件を満たす」を「条件を満たさない要素を含んでいない」と読み替えて判定するからだと思う。前者は必ず全要素をチェックする必要があるが、後者は1つでも条件を満たさない要素が見つかればその時点でfalseを返せる。そしてこの判定方法だと空集合にはtrueを返す。
でも「すべての要素が」という命題は暗黙に「その集合に属する」という前提を含むから読み変えなくても空集合にはtrueを返すと思います。全要素をチェックする実装方法が持ち込まれて話が替わってると思います。
じゃぁ一つでもfalseだったらfalseを返すという仕様だったら?
一つでもって*1つ以上の要素が*って意味だって分かってる?そんで*0個全ての要素が*の話ししてるのも分かってない?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ研究家
falseじゃないんですか?ちょっと誰か説明して・・・ (スコア:0)
> 「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、
> 空の配列を渡したらfalseを返すかtrueを返すか
https://www.perplexity.ai/ [perplexity.ai] :
"「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡した場合、trueを返すべきです1
2
3
。空の配列は、すべての要素が条件を満たすという要件に反するものではなく、真偽値を返す関数においては、空の配列を渡した場合にtrueを返すことが多いです。また、空集合はあらゆる集合の部分集合であるため、空の配列を渡した場合にfalseを返すと、ある種の矛盾が生じることになります1
。た
Re: (スコア:0)
想像だけど、「すべての要素が条件を満たす」を「条件を満たさない要素を含んでいない」と読み替えて判定するからだと思う。前者は必ず全要素をチェックする必要があるが、後者は1つでも条件を満たさない要素が見つかればその時点でfalseを返せる。そしてこの判定方法だと空集合にはtrueを返す。
Re: (スコア:0)
でも「すべての要素が」という命題は暗黙に「その集合に属する」という前提を含むから
読み変えなくても空集合にはtrueを返すと思います。
全要素をチェックする実装方法が持ち込まれて話が替わってると思います。
Re:falseじゃないんですか?ちょっと誰か説明して・・・ (スコア:0)
じゃぁ一つでもfalseだったらfalseを返すという仕様だったら?
Re: (スコア:0)
一つでもって*1つ以上の要素が*って意味だって分かってる?
そんで*0個全ての要素が*の話ししてるのも分かってない?