1 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 23:36:31.74 ID:uXFKqVsm.net] クラス名、変数名のつけ方に悩んだら書き込むスレです。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 前スレ クラス名・変数名に迷ったら書き込むスレ。Part25 peace.2ch.net/test/read.cgi/tech/1416550677/
609 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:22:58.62 ID:63JI2jED.net] どうせ1個しか使わねぇなら runningでいいよ。
610 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:32:15.82 ID:epT5qit0.net] 自分ならこうするとか出さずにケチつけるだけのバカはスルーでいいと思う
611 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:54:53.01 ID:CxVr26OT.net] なぜ「こんなスレ」に来たのかと
612 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 16:13:20.39 ID:/Q0b75iC.net] 質問者も回答者も必要としているから来ているのに 全否定するなら来なきゃいいのにね コミュニティ(プロジェクトチームだよね?)が存在す
613 名前:るなら 規約があるだろうに [] [ここ壊れてます]
614 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 16:17:18.62 ID:lwtBalzC.net] >>605 私のことを言ってるのなら >>587 で案は出した。
615 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 16:56:52.19 ID:epT5qit0.net] >>608 が>>587 以降どれなのか分からないからなんとも言えない
616 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 09:39:55.22 ID:RiFwOng1.net] 自分なら「その関数の下に付随するもの」を明確にするために Hoge::IsRunning() とか Hoge_IsRunning() みたいな名前にしたいな
617 名前:598 mailto:sage [2016/09/19(月) 12:29:50.12 ID:+qZcElwT.net] >>610 isRunningでは「runningとは」という意味になってしまう finction Hoge_isRunning (arg) { return arg === HogeRunning; } >>599 も似たようなことを指摘してるが、何でもisを付ければ良いというのは短絡的だと思う is****は****と同一性評価する為に使うものでステータスを確認するものではない あなたの意見の延長で考えるなら HogeRunning が妥当だろう
618 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:37:45.35 ID:dWsrNIgM.net] >>611 さすがに何を言ってるのか意味が分からないw isRunningは主語が欠けているがかろうじて英語になっているけど、 HogeRunningは英語にすらなってないw 文脈によっては(つまり何がRunningかが自明であれば)isRunningは選択肢に入るが、 HogeRunningじゃ何のことだかまったく分からないよw
619 名前:598 mailto:sage [2016/09/19(月) 12:44:41.25 ID:+qZcElwT.net] ちなみに>>598 はそれぞれ下記を意図している > Hoge#busy Hogeは動作中であり、二重起動を許さない 排他的動作を望むならこれ > Hoge#readyState document.readyStateのように複数の動作ステータスを定数で管理する 「動作中」というより「動作可能な状態」を見る名前なので>>583 の意図とは少し違ったかもしれない 後はHTMLMediaElementのプロパティ名が参考になると思う https://developer.mozilla.org/ja/docs/Web/API/HTMLMediaElement 素直に考えるなら executing か running だろうな 最も、>>585 を見てると hoge, hogeExecuting, hogeFoo のように接頭辞を付けて名前を並べている印象で設計上の問題も感じられるが (PHPのような命名規則は全く美しくないと思う)
620 名前:598 mailto:sage [2016/09/19(月) 12:46:44.68 ID:+qZcElwT.net] >>612 改めて読んだが、Hoge_isRunning は Hoge === Running の等価性を評価しているように見える
621 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:56:37.47 ID:dWsrNIgM.net] >>614 何が言いたいのかよくわからんけど、あえてそんな変な語順を採用する理由なんか何もない。 普通に英語通りisHogeRunningでいい。 あなたは Is light red? light(信号)と赤の等価性を尋ねているとか思うのかな?w
622 名前:610 mailto:sage [2016/09/19(月) 13:41:43.01 ID:RiFwOng1.net] >>611 英語はそれこそ中学英語レベルしか自信ないけど X is running で「Xは走ってる」(この場合は実行中だが)にはならんってこと?
623 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:07:58.75 ID:dWsrNIgM.net] >>616 なるから変なんでしょ。 「Xが実行中かどうか」を表す変数の名前が肯定文だったらおかしいでしょ。 その変数が表すべきなのは「Xが実行中かどうか」なのであって、 「Xが実行中である」という定言が正しいか間違ってるかじゃないんだよw
624 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:24:01.60 ID:FalA4T6t.net] 肯定文で別におかしいとは思えん メソッドなら疑問文にするけど
625 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:32:21.32 ID:oMXaxPTM.net] 変数名なら明確にするためにHogeを入れる可能性もあるけど それなら見りゃわかるしisなんてつけないし限定できるならrunningだけで済む メソッド名だったらこんな名前がつく時点で設計がおかしい
626 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:35:34.44 ID:RiFwOng1.net] >>617 ああ、そういうことか。 IsFoo()は疑問文だよ派と、疑問文じゃないよ派があるじゃん? そこですれ違いが起きてたんだな。
627 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:41:14.57 ID:nr8fG4n4.net] >>620 IsX() Xですか? IsFoo() Fooですか? 疑問文じゃなかったらどういう意味にとらえるん? 主語どこいったん
628 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 15:04:21.27 ID:P5Fkfkju.net] これはXですか? あなたは誰ですか? 誰ってなんですか? アスペ乙
629 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 15:05:13.81 ID:W9V/RaHi.net] ざっとググったが。 MS IVsaEngine.IsRunning プロパティ スクリプト エンジンが現在実行モードかどうかを報告する Boolean 値を取得します。 Apple isExecuting A Boolean value indicating whether the operation is currently executing Android MediaPlayer.isPlayingメソッドを使い再生しているかチェックすることが出来る。 if(gameBgm.isPlaying()) { gameBgm.pause(); } あとこれ stackoverflow.com/questions/6950841/is-using-is-to-name-boolean-variables-bad-practice
630 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 15:14:09.76 ID:RiFwOng1.net] >>621 元はオブジェクト指向が組み込まれてる言語での命名規約だと思うけど Bar.IsFoo() → BarはFooである(ときに真になる) という考え方がある
631 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 15:45:36.28 ID:KoK4joax.net] >>624 Bar.IsFoo() → Bool 戻り値みたら意味が分かるからね、IF文に入れると美しいよ メソッド名ばかりに囚われずに引数や戻り値の型を情報にしないとな
632 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 16:14:29.05 ID:nr8fG4n4.net] >>624 それ>>610 と同じ事言ってるから>>611 以降ループするような 個人的には>>620 でクラス省略してたんか納得なんだけどな
633 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 16:25:38.99 ID:RiFwOng1.net] >>626 わざと肯定文にしてるってだけの話なので 話題がループすると言われたらそうかもねw
634 名前:583 mailto:sage [2016/09/19(月) 18:38:45.41 ID:yO6KMXAM.net] 皆様ありがとうございます 完全に我流でやってきたので変数名に関してはさっぱり分からないので 議論を含めて勉強になります φ(。_。*)メモメモ
635 名前:デフォルトの名無しさん [2016/09/19(月) 18:46:53.72 ID:HiH7SQ7t.net] 自分の状態を返すメソッドを作らないといけないJava。 いまとなっては欠点。
636 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 19:11:09.78 ID:W9V/RaHi.net] それは言語使用じゃなく設計・実装の問題。 べつに、状態をaskせずにがんがんtellする作りでも構わない。 つかOOPではtell don’t ask(なるべく)と言われてる。 まスレチだけど。
637 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 19:25:10.20 ID:W9V/RaHi.net] あーもしかしてアクセサの自動生成の事かな。 それは欠点かも。開発環境によってはできるようだが。
638 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 02:10:10.44 ID:e0L1bcAS.net] >>620 「IsFoo()は疑問文だよ派」って日本人にしか居ないんじゃね?って思ってる。 https://stackoverflow.com/questions/1566745/boolean-method-naming-readability
639 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 02:59:04.85 ID:Cm1yXv5P.net] >>632 それは冗長さを避けるための妥協だと思うよむしろw あとisと違ってdoesの場合は主語の省略が許されないっていう英語の構文の都合もあると思う。
640 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 05:53:47.12 ID:OvbuO/pb.net] >>632 ブール値を返す関数やプロパティってIF文での使用が前提なのだから 疑問文じゃおかしいんだよなあ
641 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 10:43:46.67 ID:I6O94rhW.net] >>634 代入や比較、条件演算子もあるよw
642 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 10:50:27.61 ID:w3uYhEGb.net] 通常会話の ? と同じ意味でなくてもよいだろう。 0 or 1 = bool? 動的にどちらかが返されるので "bool?" 別にブールかどうかを聞いてるわけではなくて、boolと言う型の名称を指してるわけでもなくて。
643 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 10:54:48.35 ID:KnjyA1F8.net] >>634 if( これはペンですか? ) 「これはペンですか?」が真「かどうか」は無理?
644 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 11:14:21.36 ID:pL9mhHAw.net] 日本語からやりなおせよもう
645 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 11:24:20.84 ID:KnjyA1F8.net] 関数名の流れだからな 「これはペンですか?」を関数名としてみたらいい その答え(戻り値)が真「かどうか」って説明のがよかったな
646 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 11:45:19.36 ID:w3uYhEGb.net] ペンか否か? → ペン? なんら問題を感じない
647 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:15:34.35 ID:or4BStYo.net] これはペンであるという命題があって真であるか偽であるかという議論ができる これがさすものはこの場合オブジェクトなので 英文はThis object is a penとなる プログラム言語の構文による制約を加えるとobj.IsPenが正解となる
648 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:22:19.81 ID:zA4ozj3G.net] だからそれは違うってw 変数の値やメソッドの返り値が表しているのはyes/noであってright/wrongじゃないw
649 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:47:00.75 ID:or4BStYo.net] まあ人間は考えるだけなら自由だからいいけど
650 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:48:30.22 ID:EJ4QdJ/o.net] 違う。 True / false 何が真であるかは仕様によるので暗記するかそのつど調べてください。 プログラム言語における "?" は戻りが不明瞭な場合に、それをプログラマに対して明示的に伝える役目を果たします。
651 名前:デフォルトの名無しさん [2016/09/20(火) 21:51:57.12 ID:+3HpdUPY.net] いいえ。それはパンです。
652 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:12:38.89 ID:zA4ozj3G.net] 話の通じないお方。 例えば与えられた自然数が素数ならtrueを返すメソッドがある時、 普通のプログラマはその戻り値は「xが素数であるかどうか」(yes/no)を表していると考えるでしょ? 「xが素数である」という命題が正しいかどうか(right/wrong)を表しているって考える人いる? まずいないでしょ。 前者は、別の言い方をしたら「xは素数ですか?」っていう質問に対する答えだよね。
653 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:21:59.98 ID:qJ9FA8Jd.net] もしもxが素数であるかどうかなら〜 こりゃ不自然すぎて引くわ もしもxが素数であるなら〜 うん自然でわかりやすいね xが素数であるかどうかでない ひええ xが素数でない イイね xが素数であるかどうかかつyが偶数かどうか もう意味わからん xが素数であるかつyが偶数である excellent!
654 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:23:08.40 ID:zf/Fc8Vs.net] すまんが、そんな日常言語のような解釈はしていない
655 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:29:53.66 ID:OvbuO/pb.net] >>646 厳密に言うと if x is prime number then Yes otherwise No. 真偽判定の結果がyes/noなの x.isPrimeNumber()とあった場合、xに問うているのではなく xの状態を確かめているの で、その状態をIf文で審議して、yes/noを出力するの
656 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:38:27.08 ID:OvbuO/pb.net] >>646 もう少し分かり易い話をすると 君が目の前にペンを見せられて「これはペンですか?」と尋ねられたら 君は頭なの中で「これはペンの形をしている」や「これはペンの機能を有している」と ペンがペンであるかの状態を審議して「Yes」と答えるわけだ
657 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:20:55.50 ID:zA4ozj3G.net] 何を言ってるのか意味が分かりませんw
658 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:25:54.74 ID:zA4ozj3G.net] っていうか、命名の話をしてるんだけど分かってるのかな?w 変数の名前はその値が何を意味しているかを表しているべきだし、 メソッドについても、少なくともboolを返すメソッドについては、普通はメソッド名は 戻り値が何を意味しているかを表しているべきだ。 さて>>646 に戻って、「与えられた自然数が素数ならtrueを返すメソッド」の戻り値は 何を意味しているでしょうか。
659 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:31:02.93 ID:zf/Fc8Vs.net] さてはtrueだな!
660 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:52:16.14 ID:OvbuO/pb.net] >>652 オブジェクトは状態を維持するの 君はペンに「君はペンですか?」って尋ねるの? ペンは尋ねられたら自分が何者か答える機能がついているの? それがペンであるかの判断は、ペンの状態を見た君の判断であって ペンが自分が何者かを答えるわけではないの >っていうか、命名の話をしてるんだけど分かってるのかな?w だから、ブール値を返すメソッドやプロパティはその状態を返しているの Bar.isFoo()なら「BarはFooである」って意味なの 決して「BarはFooですか?」にならないの
661 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:07:28.58 ID:Rtj0ivpx.net] >>654 何が言いたいのかよくわからんけど、君の例で言ったら、 Bar.isFoo()がfalseを返す時、その値は「BarはFooである」を意味してないことは分かりますか? 違うよね。 それは「BarはFooではない」ことを意味している。
662 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:09:08.73 ID:/kyzsMvg.net] オブジェクト指向じゃない言語での命名ってどんな感じなん?
663 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:15:44.88 ID:Rtj0ivpx.net] っていうか、>>654 みたいなboolを返すメソッドがある時、 その戻り値が「BarはFooである」っていう命題の正誤を表すと考えるプログラマはいないよ、 ってそんな難しい話かな?w >>654 はどうだか知らないけど、普通の人は、戻り値は「BarはFooであるかどうか」を表していると考えるんだよ。 別の表現をすれば、それは「BarはFooですか?」という質問に対する回答を表していると考える。
664 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:28:08.62 ID:43fglGIp.net] >>655 「BarはFooである」に偽が返ったら否定しているって分かるでしょ IF文が判断をするのであって、その条件式に入れるオブジェクトが判断しないの 例え話の君の部分がIF文、条件式に入るオブジェクトがペンなの 君はペンであるかどうかをIF文でペンの状態を見ながら判断するけど ペンに「君はペンですか?」って尋ねながら判断しないでしょ だから if x is pen then Yes, otherwise No. が成り立つの、メソッド名は疑問文にならないの
665 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:28:14.35 ID:3n4gTsBt.net] >>657 なんで疑問文にしちゃうかなwwwだっせえwww
666 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:36:41.32 ID:43fglGIp.net] >>657 いい加減、なの言葉が嫌になってきた 論理学の勉強をしてくれ
667 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:36:49.61 ID:Rtj0ivpx.net] だめだ何回繰り返しても人の話が頭に入らないタイプっぽいw boolを返すメソッドの名前は、その戻り値が何を意味しているかを表しているべきである、 ってそんなに難しい話かなw オブジェクトが判断とか何のことやらw
668 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:39:24.66 ID:atzPe4+g.net] ifで始まる英文は疑問文ではない。
669 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:53:15.14 ID:/kyzsMvg.net] AはBである、BはCである、だからAはDである、 みたいな、途中までは納得できるのに最後ですれ違う違和感というかなんというか
670 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 00:57:48.41 ID:43fglGIp.net] >>661 メソッド名を関係演算子に置き換えてみな これもブール値を返す (x > y) → Bool >演算子はxとyの関係を表す x is greater than y 何故、「関係」演算子って呼ばれているか? その関係の状態を(断定して)表し、その真偽を得る演算子だから 決して疑問文ではない 真偽を表すメソッドなら命名に例外はありえない
671 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:01:38.90 ID:/kyzsMvg.net] この流れで「ありえない」って言葉は、熟慮してから使ったほうがいいんじゃないかなって
672 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:01:45.26 ID:wWPv3Jxl.net] >>661 > boolを返すメソッドの名前は、その戻り値が何を意味しているかを表しているべきである、 ここにはあんまり異論は無いと思う。 わからないのは、 >>646 の「別の言い方をしたら」とか >>657 の「別の表現をすれば」とか、 なんでわざわざそんな言い替え(読み替え)をしないといけないのか、というところ。 "if Bar is Foo, ..." っていう意味のコードは当然 "if (Bar_isFoo()) ..." となっていたほうが 読みやすい。あなたはこれを "if (isBarFoo()) ..." と書けと言うのか?そうだとしたら、なぜ? 何がうれしいの?
673 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:03:04.24 ID:Rtj0ivpx.net] >>664 何が言いたいのかさっぱり分からないけど、 一度でいいからこちらの質問に正面から答えて見たら? bool b = x > y; このbの値が何を表しているのか、日本語で表現してみて。
674 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:08:54.68 ID:43fglGIp.net] >>663 ペンにはインクの残量がある ペンが書けるかどうか判断する時、残量を見るだろ Max100の内、残量が20だとしたら、そのペンは書けると判断出来る でも、残量が30を切ったらインクを補充したい その判断をIF文で書いてみ それらの条件式は断定した形になり、その真偽を問うことになる 決してペンがそれらを判断しない インクの残量が20を切ったら補充したいなんてペンは知らないのだから
675 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:10:02.18 ID:Rtj0ivpx.net] >>666 「xが素数かどうかを表す値」は「xが素数ですか?という質問に対する答えを表す値」と同じだから。 同じであれば、より簡素に表現できる方法を採用するのは当たり前。 前者は簡単な英語にならないよね? 後半はそんなこと言ってないよ。
676 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:12:47.04 ID:/kyzsMvg.net] >>669 日本語でコメントを付けるなら前者のほうが収まり良さそう あ、いや、言いたいことは分かるんだけども
677 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:14:16.97 ID:43fglGIp.net] >>667 ブール値
678 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:16:12.11 ID:Rtj0ivpx.net] >>671 みっともないよそういうの。
679 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:17:59.20 ID:wWPv3Jxl.net] >>669 え? x is a prime number → x_is_prime_number でいいんじゃないの? 「簡単な英語にならない」ってどういうこと?英語にしたらどうなると思ってるのか教えて。
680 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:18:35.19 ID:43fglGIp.net] >>672 xはyより大きいと断定した場合の真偽値
681 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:42:16.86 ID:43fglGIp.net] >>672 ちゃんと答えたのに終わり?
682 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 03:16:56.97 ID:Rtj0ivpx.net] >>673 何度も書いてるけどさ、それは日本語で言えば「Xは素数である」っていう定言命題だよね。>>646 「(Xが)素数かどうか」はwhether (X is) a prime number or not これをメソッド名に直訳したらGetWhetherPrimeNumberOrNot ってとこだろうけど、こんな冗長な名前は使えないよね。 >>669 に書いたことを認めるのであれば、これをIsPrimeNumberに「意訳」できる。
683 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 04:03:47.54 ID:wWPv3Jxl.net] >>676 その定言命題(「Xは素数である」=「xが素数」(>>669 ))で済むところをなぜ意訳して 疑問文にしなければならないのか、したいのか、というところを問うているのです。
684 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 04:13:30.84 ID:wWPv3Jxl.net] 正直、「日本語で言えば」とか直訳とか意訳とかいうのがどうでもいい。 if, while, assert などに続けて自然な英語で読みくだせるように名前を考えてほしい。
685 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 05:42:58.72 ID:OU/LK8hF.net] いい加減うぜーから消えろよゴミ
686 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 07:29:53.44 ID:ICiqip2R.net] そもそも自然言語の [A or B] は [Aですか?もしくはBですか?どっちですか?] だけど、 プログラム(スクリプト)の場合は、 Aを実行してその結果が気に入らなければ、Bを実行して、Bの実行結果を戻りとして採用するが、 Aを実行した副次的変動、及び実行コストについては問われることとなる。 これは、オニオンスープですか?それとも中華スープですか? と聞かれたとき、両方のスープを飲んだあとに 「中華スープです!」と答えるようなもの。 でも彼はオニオンスープの代金(コスト)は払っているし、腹の中にもしっかりスープは入っている。 そしてもし彼が「オニオンスープです!」と答えたときは、中華スープは飲んでいないのだ。 不思議だね。 なにが言いたいかと言うと、単語や名称ならともかく、 "?" や "or" のような道理の組み立てを必要とするものを自然言語でそのまま当てはめようとするのは自然じゃないと思う。 長い文章で AorB を説明するなら普通に可能だけど。
687 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 08:32:12.71 ID:zyB6ba4K.net] >>680 > Aを実行してその結果が気に入らなければ、Bを実行して、Bの実行結果を戻りとして採用するが、 知ったかは黙ってろ
688 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 09:05:06.11 ID:3bSG8ND0.net] これをどう表現するかの派閥争いって事でいいの? if( x < y ) A else B 1, 「もし」xがyより小さいならA, 違えばB 2, xyが(x < y)「かどうか」判断して正しければA, 違えばB こんな感じ?
689 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 09:51:40.02 ID:atzPe4+g.net] どうでもいい領域に入ってるなw
690 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 11:53:00.58 ID:ObWHCjaA.net] >>677 その答えは>>646 に既に書いてある あなたに逆に聞くけど、あなたはxが素数ならtrueを返すメソッドがある時、 そのメソッドの戻り値は、 (1) xが素数であるかどうか を表していると考えるのか、それとも (2) 「xは素数である」という命題が正しいかどうか を表していると考えるのか。 (1)であるならそんな命名はありえない
691 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 14:03:45.22 ID:EAULLchH.net] 我流japlishの典型だな ちょっと英語でレスしてみろよおまえ 楽しい英文が見れそうだ
692 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 14:05:23.37 ID:atzPe4+g.net] the truth is out there..
693 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 14:50:24.12 ID:43fglGIp.net] >>682 単純にブール値を返すメソッドの解釈の話 どちらの主張も命名としては、x.isFoo() → boolで同じ 一方は、これは疑問文であり、戻り値のbool型には疑問文の答えの意味が含有する もう一方は、xを断定した場合に、その断定に対する真偽を返すだけであり IF文やWihle文などの条件式に利用された際に、その結果の意味が含有される 前者は、x.isFoo()この時点で「xはFooですか?」とオブジェクトxに問いかけるとし その結果のブール値が、yes/noの意味があるって解釈 つまり、オブジェクト自体が判断して答える 後者は、x.isFoo()は「xはFooである」と断定したと解釈し、bool値はその断定の真偽の意味しかない If x is Foo then Yes else No.のように条件式に当てはめて初めてその結果に意味が生まれる あくまでオブジェクトxの状態を見て、その判断をxの外側でする そもそもbool値を返すメソッドやプロパティは、If文やWhile文の条件式に利用される 条件式とは条件を指定するために使用される論理式であり、断定した文じゃなきゃおかしい その条件を満たすかどうかの真偽が返るだけなのよ 自分は後者の考え
694 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 15:19:51.23 ID:CI/H1dYR.net] いや、前者でしょ、普通
695 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 15:24:33.79 ID:fkT31Cim.net] 前者なんてありえない 質問に質問で返す池沼の領域
696 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 15:33:57.34 ID:ObWHCjaA.net] 一応突っ込んでおくと、>>687 の人は (1) boolの値bが何を意味しているか (2) if文でboolの値bを使って分岐する処理が何を意味するか この2つのまったく別の問題を混同してるんだろうね恐らく。 オブジェクトが判断とか外が判断とか、何を言ってるのかよく分からない部分が多過ぎるけど。 何度も書いてるけど、メソッドにしろ変数にしろ、普通は(1)に基づいて決める。
697 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 15:34:20.29 ID:CI/H1dYR.net] > x.isFoo()この時点で「xはFooですか?」とオブジェクトxに問いかけるとし > その結果のブール値が、yes/noの意味があるって解釈 がありえないというのがありえないんですけど
698 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 15:59:10.55 ID:CI/H1dYR.net] さかのぼってみたが、ここからおかしいな。 >>649 > x.isPrimeNumber()とあった場合、xに問うているのではなく > xの状態を確かめているの > で、その状態をIf文で審議して、yes/noを出力するの x.isPrimeNumber()は、xにお前は素数かという問い合わせをしているのであって、状態を確かめているわけではない。 また、if自身はconditionの中身なんて知らない。 >>650 > 君が目の前にペンを見せられて「これはペンですか?」と尋ねられたら > 君は頭なの中で「これはペンの形をしている」や「これはペンの機能を有している」と > ペンがペンであるかの状態を審議して「Yes」と答えるわけだ 「君=if」なら、ifはペンが問題になっているなんて知らない。
699 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 16:18:45.60 ID:43fglGIp.net] >>692 うん、いいね、少しずつ近づいてきている x.isPrimeNumber()は「xが素数である」と、その状態を見ている 状態はCondition、IF文の条件式もCondition >また、if自身はconditionの中身なんて知らない。 当たり前、だからx.isPrimeNumber()と断定してその真偽を得ている >「君=if」なら、ifはペンが問題になっているなんて知らない。 そうだよ、だから条件式は真偽でしかない ペンが返したyes/no、言い換えるならI'm Pen/ I'm not Penなんて分からない
700 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 16:40:32.90 ID:CI/H1dYR.net] >>693 > x.isPrimeNumber()は「xが素数である」と、その状態を見ている 見てるって誰が? 登場人物はxとifしかないが。
701 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 16:41:37.46 ID:CI/H1dYR.net] >>693 > 当たり前、だからx.isPrimeNumber()と断定してその真偽を得ている 誰が断定するんだ? 誰も断定なんてしない。
702 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 16:50:20.01 ID:ObWHCjaA.net] 擬人化してるにしても何言ってるのか意味わかんないよねw 普通に考えれば、「判断している」主体はif文が存在するクラスのオブジェクトだと思うんだけどw
703 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 16:53:19.41 ID:CI/H1dYR.net] 君も何がいいたいのかよくわからんが、 >>696 > 普通に考えれば、「判断している」主体はif文が存在するクラスのオブジェクトだと思うんだけどw 判断なら、ifもxもするだろ。
704 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 16:58:17.13 ID:JUd66AJb.net] こいつ他の板でも発狂してるアホだからもうやめよう 構うだけ無駄
705 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 17:02:59.13 ID:CI/H1dYR.net] まさか、ID:43fglGIp派が多数なのか? 信じられん
706 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 17:03:05.41 ID:ObWHCjaA.net] >>697 ブラックボックスの内側の視点と外から見た視点を混同している気がするけど、 まあそこは泥沼みたいだからどうでもいいやw 言いたいことはとにかく、>>687 が何を言ってるのか分からないということ。
707 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 17:09
] [ここ壊れてます]
708 名前::51.28 ID:CI/H1dYR.net mailto: >>700 まぁ俺もどうでもいいっちゃいいんだが、 > 後者は、x.isFoo()は「xはFooである」と断定したと解釈し、bool値はその断定の真偽の意味しかない > If x is Foo then Yes else No.のように条件式に当てはめて初めてその結果に意味が生まれる > あくまでオブジェクトxの状態を見て、その判断をxの外側でする という文章に、強烈な違和感を感じたのでちょっと突っ込んでみただけ。 [] [ここ壊れてます]
709 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 17:23:24.52 ID:HZYtd1tc.net] >>701 俺には言葉遊びをしているようにしか思えないねw シンプルに本質を捕えた方がいい。 しつこいけど本質はこうだよね。 キューが満杯の時にtrueを返すメソッドがあったとして、そのメソッドの戻り値は、 (1) キューが満杯であるかどうか を意味していると考えるのか、それとも (2) 「キューは満杯である」という定言命題が正しいかどうか を意味していると考えるのか。 (2)って考える奴はあんまりいないと思うよ、っていうのが俺の意見なんだけど。