アカウント名:
パスワード:
空の配列には、条件を満たす要素は一つも無い。つまり、falseだと思う。
今時は条件はラムダ式をもらってそれに要素を適用して結果を返すもんじゃないですかね。条件があらかじめわかっているということはないです。私なら何も指定がなければtrueにしますね。評価すべきものがないというのは処理が続行できるであることが多いですから。それでは困ると言われたら例外にすることを提案すると思います。
この方の発言で漸く問題提起の意味を理解したわ。
判定条件は外部から数十通り与えられ、その条件に従って要素を判定し結果のみを返す事を求められる関数の場合、空配列はどう扱うか?という話なのね。
その関数の前に空配列チェックしろって話なんだけど、それはそういう視点で語るから言える話であり、あくまで関数内でどう結論づけるかが主題、ということかな。
となると、やはりtrueが正解なのかな?判定処理が働かない以上、falseにする理由がないように思える。箱の中の違反品チェックで、空箱を違反扱いするのも変だし。
今どきは標準ライブラリにあるでしょうねそしておそらくは数学や論理学の慣習に合わせてtrueになってるでしょうね
わかる、これ逆に、「配列のすべての要素が条件を満たすならtrueを返す」を「こんなんアレだろ」とプログラマの直感で作ると空配列でtrueになっちゃって、日本語的には「配列のすべての要素が条件を満たすならtrueを返す」からその条件でtrueを返す仕様は読み取れないから、trueを返すのはバグでは?と言われるとちょっと答えに窮する所だと思う。
# 「いやいやいやそうなんだけどtrueを返すべきなんだって!全てがtrueなら=ひとつもfalseが無ければなんだって!」
まったくその通りで、intArray.All( (i) => {i > 0}) みたいな話で、それを再発明するというのならtrueを返す以外の選択肢は無いんだよね。それで困るというのであれば、それはその関数の中で処理する話じゃない。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
言葉尻? (スコア:2)
空の配列には、条件を満たす要素は一つも無い。
つまり、falseだと思う。
Re:言葉尻? (スコア:0)
今時は条件はラムダ式をもらってそれに要素を適用して結果を返すもんじゃないですかね。
条件があらかじめわかっているということはないです。
私なら何も指定がなければtrueにしますね。評価すべきものがないというのは処理が続行できるであることが多いですから。
それでは困ると言われたら例外にすることを提案すると思います。
Re: (スコア:0)
この方の発言で漸く問題提起の意味を理解したわ。
判定条件は外部から数十通り与えられ、その条件に従って要素を判定し結果のみを返す事を求められる関数の場合、空配列はどう扱うか?という話なのね。
その関数の前に空配列チェックしろって話なんだけど、それはそういう視点で語るから言える話であり、あくまで関数内でどう結論づけるかが主題、ということかな。
となると、やはりtrueが正解なのかな?判定処理が働かない以上、falseにする理由がないように思える。
箱の中の違反品チェックで、空箱を違反扱いするのも変だし。
Re: (スコア:0)
今どきは標準ライブラリにあるでしょうね
そしておそらくは数学や論理学の慣習に合わせてtrueになってるでしょうね
Re: (スコア:0)
わかる、これ逆に、
「配列のすべての要素が条件を満たすならtrueを返す」を「こんなんアレだろ」とプログラマの直感で作ると空配列でtrueになっちゃって、
日本語的には「配列のすべての要素が条件を満たすならtrueを返す」からその条件でtrueを返す仕様は読み取れないから、
trueを返すのはバグでは?と言われるとちょっと答えに窮する所だと思う。
# 「いやいやいやそうなんだけどtrueを返すべきなんだって!全てがtrueなら=ひとつもfalseが無ければなんだって!」
Re: (スコア:0)
まったくその通りで、intArray.All( (i) => {i > 0}) みたいな話で、それを再発明するというのならtrueを返す以外の選択肢は無いんだよね。
それで困るというのであれば、それはその関数の中で処理する話じゃない。