アカウント名:
パスワード:
空の配列には、条件を満たす要素は一つも無い。つまり、falseだと思う。
「すべての要素が条件を満たすか?」というだけ話に、「かつ最低でも一つは条件を満たすこと」という別の条件を勝手に加えて判断してるね論理的にも等価に言い換えるなら、「いずれかの要素が条件を満たさないことはないか?」だよA and B and ... = not(notA or notB or ...)
空配列は空であるが故に、いずれかの要素が条件を満たさないことはない、のでtrue
それを言うなら「すべての要素」と書いているのに、「『要素が無い』を許す」という別の条件を勝手に加えて判断してません?
0個の要素がすべて条件に合致しました、と条件を加えることなく満たしてるね自然言語ならまだしも、プログラム言語という数学や論理上の話なら極めて普通の処理だと思うけどそうは思わないってこと?
「『要素が無い』を許さない」という別の条件を勝手に加えて判断するのはやめましょう
数学や論理上の話では、「未定義」を「存在する(∃)」扱いにすることはないよ。勉強して出直してこい。
数学およびその一分野であるコンピュータサイエンスでは、true になるで合ってるよ。
「∀A∈S に対して C(S)=真」が条件式なんだから、Sが空集合なら式は真になる。
Sが空集合なら式は真、という結論には異論はないんですが、
数学的に考えちゃうと、常にreturn trueする恒真関数も、「配列のすべての要素が条件を満たすならtrueを返す」関数の条件を満たしちゃうんだよなぁ。
「必要十分条件である」という暗黙の前提があると考えれば曖昧さはなくなるんだけど
たまに条件Aを満たすならtrueを返し、条件Bを満たすならfalseを返す関数みたいに定義されていて、AもBも満たさない場合どうすんねんって暗黙の前提の想像もできない仕様を見かける。
その場合は3値論理として不定/未定義だなってプログラム的に組みやすいように実装したりすると、あとで(仕様にない挙動を思い込みで決めつけて)「AもBも満たさない場合の挙動がおかしい」とかいってクレームが来るのが定番なので仕様精査大切。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家
言葉尻? (スコア:2)
空の配列には、条件を満たす要素は一つも無い。
つまり、falseだと思う。
Re: (スコア:4, すばらしい洞察)
「すべての要素が条件を満たすか?」というだけ話に、「かつ最低でも一つは条件を満たすこと」という別の条件を勝手に加えて判断してるね
論理的にも等価に言い換えるなら、「いずれかの要素が条件を満たさないことはないか?」だよ
A and B and ... = not(notA or notB or ...)
空配列は空であるが故に、いずれかの要素が条件を満たさないことはない、のでtrue
Re: (スコア:0)
それを言うなら「すべての要素」と書いているのに、「『要素が無い』を許す」という別の条件を勝手に加えて判断してません?
Re:言葉尻? (スコア:0)
0個の要素がすべて条件に合致しました、と条件を加えることなく満たしてるね
自然言語ならまだしも、プログラム言語という数学や論理上の話なら極めて普通の処理だと思うけどそうは思わないってこと?
「『要素が無い』を許さない」という別の条件を勝手に加えて判断するのはやめましょう
Re: (スコア:0)
数学や論理上の話では、「未定義」を「存在する(∃)」扱いにすることはないよ。勉強して出直してこい。
Re:言葉尻? (スコア:1)
数学およびその一分野であるコンピュータサイエンスでは、true になるで合ってるよ。
「∀A∈S に対して C(S)=真」が条件式なんだから、Sが空集合なら式は真になる。
Re: (スコア:0)
Sが空集合なら式は真、という結論には異論はないんですが、
数学的に考えちゃうと、常にreturn trueする恒真関数も、
「配列のすべての要素が条件を満たすならtrueを返す」関数
の条件を満たしちゃうんだよなぁ。
「必要十分条件である」という暗黙の前提があると考えれば曖昧さはなくなるんだけど
たまに
条件Aを満たすならtrueを返し、条件Bを満たすならfalseを返す関数
みたいに定義されていて、AもBも満たさない場合どうすんねんって
暗黙の前提の想像もできない仕様を見かける。
その場合は3値論理として不定/未定義だなってプログラム的に組みやすいように実装したりすると、
あとで(仕様にない挙動を思い込みで決めつけて)「AもBも満たさない場合の挙動がおかしい」とかいってクレームが来るのが定番なので
仕様精査大切。