- Ruby 初心者スレッド Part 55
191 :173[sage]:2014/08/01(金) 00:01:31.80 ID:3wJnlar9 - >>189
つまり >>190 を前提とすれば、 「オブジェクト指向言語ではない Python では一貫性を重視しない」 ってこと? まあ Python の一貫性の無さは >>57 でも指摘しているし、 Python に慣れてしまうと、設計方針の一貫性なんてものは 気にすべきでは無い些細な事柄なのかもしれないね
|
- 【Python】スクリプト バトルロワイヤル45【pl,rb,php,js】
159 :デフォルトの名無しさん[sage]:2014/08/01(金) 00:15:58.59 ID:3wJnlar9 - >>158
つまり >>141 の Python 批判に対して反証が一つもなかったってことは、 >>141 の指摘が適切すぎてグゥの音(ね)も出なかったってことなんですね たいへん、よくわかりました
|
- Ruby 初心者スレッド Part 55
198 :173[sage]:2014/08/01(金) 21:43:31.89 ID:3wJnlar9 - >>189
> 1.0/3と1/3で結果が変わるのは多態性として考えれば当然。 たしかに(型付けの強弱よりも)多態性で解釈するのが、 Ruby では素直というか自然な発想ですね しかしながら、 > この問題に限っては、Rubyは型検査の能力を犠牲にして > オブジェクト指向言語としての一貫性を重視しているということだ。>>185の理屈に従えばね。 という箇所に関しては、結果が変わる現象を多態性で説明できてしまうのですから、 この演算子の左辺に着目するケースに限れば、 「型検査の能力を犠牲にしている」という指摘は間違いであると考えます 型検査(つまり型付けの強弱)が問題になるのは、 「1.0 / 3.0 と 1.0 / 3 で結果が同じになる」という演算子の右辺に着目するケースです Ruby の数値系クラスでは、(単なる型判定ではなく)「型強制(coerce)アーキテクチャ」と呼ばれる 設計方針に従った一貫したインターフェイスを提供していますが、 (>>185 の最終段落で述べたように)型強制には型検査の能力を阻害する悪影響があります したがって、もし犠牲という言葉を強調したかったのであれば、 「今回のケースは無関係であるが、1.0 / 3.0 と 1.0 / 3 で結果が同じになるケースでは、 Rubyは型検査の能力を犠牲にして型強制の利点を重視している」という指摘が正しいと言えます なお、型検査の能力を犠牲にしているとはいえ、「1.0 / 3.0 と 1.0 / 3 で結果が同じになる」のは Python も同じなのですから、動的型付け言語である Ruby の設計方針としては妥当な判断でしょう
|
- Ruby 初心者スレッド Part 55
199 :173[sage]:2014/08/01(金) 21:51:58.88 ID:3wJnlar9 - >>192
>>190 では、型付けの強弱について頓珍漢な我流解釈をしていた >>175,176 と 同一人物であると早合点し、>>189 の多態性という言葉を十分に検討しないまま 即レスしていました 冷静に考えると、ここは Ruby スレなのですから、>>190 はスレ違いなレスでした 気分を悪くさせて申し訳ありません
|
- Ruby 初心者スレッド Part 55
201 :デフォルトの名無しさん[sage]:2014/08/01(金) 22:09:39.65 ID:3wJnlar9 - >>197
超初心者という甘えで有識者にエスパーを期待しようとしても ムリゲーだよ どこがどう分からないかを説明しなければ、 誰もアドバイスできないと思う たとえば 「..... をしようとして ..... ではないかと考え、 ..... という結果を期待して ..... を試してみたけど、 ..... というエラーメッセージが返されて失敗しました」 といった文章を書いてみよう
|