[#11904] to_i,to_s の素朴な疑問 — HQss_YasuiS/hq_ss@...

30 messages 1999/02/04
[#11905] Re: to_i,to_s の素朴な疑問 — Masaki Fukushima <fukusima@...> 1999/02/04

福嶋です。

[#11915] Re: to_i,to_s の素朴な疑問 — HQss_YasuiS/hq_ss@... 1999/02/05
[#11917] Re: to_i,to_s の素朴な疑問 — Masaki Fukushima <fukusima@...> 1999/02/05

福嶋です。

[#11931] Re: to_i,to_s の素朴な疑問 — HQss_YasuiS/hq_ss@... 1999/02/05
[#11943] Re: to_i,to_s の素朴な疑問 — "INOUE Katsuyuki" <inoue@...> 1999/02/05

井上%といいます。

[#11980] Re: to_i,to_s の素朴な疑問 — HQss_YasuiS/hq_ss@... 1999/02/08

[#12000] how to make class? — "Kikutani, Makoto" <kikutani@...>

なんだかデータ変換で難しい話が続いているので、初心者の

53 messages 1999/02/10
[#12001] how to make class? — gotoken@... (GOTO Kentaro) 1999/02/10

ごとけんです

[#12002] What's DelegateClass ? (Re: how to make class?) — "Kikutani, Makoto" <kikutani@...> 1999/02/10

自分で始めたスレッドながらいきなりサブジェクトを変える奴。

[#12003] What's DelegateClass ? (Re: how to make class?) — gotoken@... (GOTO Kentaro) 1999/02/10

ごとけんです

[#12012] Re: What's DelegateClass ? (Re: how to make class?) — matz@... (Yukihiro Matsumoto) 1999/02/11

まつもと ゆきひろです

[#12017] Re: What's DelegateClass ? — Minero Aoki <aamine@...> 1999/02/11

あおきです。

[#12090] !=~ — "Kikutani, Makoto" <kikutani@...>

わははそうか、今まで =~ の否定は !=~ だと思っててて

42 messages 1999/02/15
[#12091] Re: !=~ — Yasuhiro Fukuma <yasuf@...> 1999/02/15

福間@福岡 です。

[#12092] Re: !=~ — ttate@... 1999/02/15

立石です。

[#12097] Re: !=~ — matz@... (Yukihiro Matsumoto) 1999/02/16

まつもと ゆきひろです

[#12099] Re: !=~ — gotoken@... (GOTO Kentaro) 1999/02/16

ごとけんです

[#12100] Re: !=~ — Kikutani Makoto <kikutani@...> 1999/02/16

Tue, Feb 16, 1999 at 10:40:46AM +0900 において

[#12101] Re: !=~ — gotoken@... (GOTO Kentaro) 1999/02/16

ごとけんです

[#12102] Re: !=~ — ttate@... 1999/02/16

立石です。

[#12103] Re: !=~ — gotoken@... (GOTO Kentaro) 1999/02/16

ごとけんです

[#12108] Re: !=~ — EGUCHI Osamu <eguchi@...> 1999/02/16

えぐち@エスアンドイー です。

[#12112] Re: !=~ — gotoken@... (GOTO Kentaro) 1999/02/16

ごとけんです

[#12116] Re: !=~ — EGUCHI Osamu <eguchi@...> 1999/02/16

えぐち@エスアンドイー です。

[#12122] Re: !=~ — gotoken@... (GOTO Kentaro) 1999/02/17

ごとけんです

[#12138] Re: !=~ — matz@... (Yukihiro Matsumoto) 1999/02/17

まつもと ゆきひろです

[#12156] Re: !=~ — EGUCHI Osamu <eguchi@...> 1999/02/18

えぐち@エスアンドイー です。

[#12157] Re: !=~ — matz@... (Yukihiro Matsumoto) 1999/02/18

まつもと ゆきひろです

[#12168] Re: !=~ — EGUCHI Osamu <eguchi@...> 1999/02/18

えぐち@エスアンドイー です。

[#12171] Re: !=~ — matz@... (Yukihiro Matsumoto) 1999/02/19

まつもと ゆきひろです

[#12117] INET client — "Kikutani, Makoto" <kikutani@...>

あおきさんのINET clientへの質問コーナー

51 messages 1999/02/16
[#12120] Re: INET client — "Kikutani, Makoto" <kikutani@...> 1999/02/16

Wed, Feb 17, 1999 at 02:24:11AM +0900 において

[#12183] ruby-mode + font-lock-mode — SONODA Yoshihide (園田 吉英) <ysonoda@...>

はじめまして、園田と申します。

21 messages 1999/02/19
[#12185] Re: ruby-mode + font-lock-mode — Shugo Maeda <shugo@...> 1999/02/19

前田です。

[#12188] Re: Meeting2000 リリースします — 松尾尚典 <matsuo_hisanori@...21.odn.ne.jp>

松尾です。

31 messages 1999/02/19
[#12245] Re: Meeting2000 リリースします — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/02/23

ruby-listの皆様,

[#12249] Re: Meeting2000 リリースします — matz@... (Yukihiro Matsumoto) 1999/02/23

まつもと ゆきひろです

[#12269] Re: Meeting2000 リリースします — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/02/23

ruby-listのみなさん,

[#12272] Re: Meeting2000 リリースします — Takahiro Maebashi <maebashi@...> 1999/02/23

前橋です。

[#12276] HTTP/1.1 client ( was Re: Meeting2000 リリースします ) — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/02/23

ruby-listのみなさん,

[#12521] http-access (HTTP/1.1 client) — Takahiro Maebashi <maebashi@...> 1999/03/03

前橋です。

[#12217] It wants to install mon_ruby — moochan <moochan@...>

moochanです。

27 messages 1999/02/22
[#12222] Re: It wants to install mon_ruby — Shugo Maeda <shugo@...> 1999/02/22

前田です。

[#12230] Re: It wants to install mon_ruby — moochan <moochan@...> 1999/02/23

moochanです.

[#12248] tempfile — Kikutani Makoto <kikutani@...>

tempファイルをよく作るのですが、

19 messages 1999/02/23

[#12301] Meeting2000-0_92 — Toshiki Komai <komai@...4u.or.jp>

29 messages 1999/02/23
[#12303] Re: Meeting2000-0_92 — hisanori@... 1999/02/24

松尾です。おはようございます。

[#12305] Re: Meeting2000-0_92 — Shin-ichiro Hara <sinara@...> 1999/02/24

原です。

[#12306] Re: Meeting2000-0_92 — hisanori@... 1999/02/24

From: Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp>

[#12307] Re: Meeting2000-0_92 — Shin-ichiro Hara <sinara@...> 1999/02/24

原です。

[#12310] Re: Meeting2000-0_92 — hisanori@... 1999/02/24

From: Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp>

[#12322] Re: Meeting2000-0_92 — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/02/24

ruby-listのみなさま, && なひ,と言います.

[#12309] [REQ] rlex.rb — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

44 messages 1999/02/24
[#12350] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/02/24

In message <199902231347.WAA00565.keiju@bc.mbn.or.jp>

[#12465] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/02/26

In message <199902241316.WAA03663@mail1.os.xaxon.ne.jp>

[#12466] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/02/26

けいじゅ@日本ラショナルソフトウェアです.

[#12470] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/02/26

In message <199902261443.XAA10667.keiju@cupmail0.rational.com>

[#12497] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/03/01

けいじゅ@日本ラショナルソフトウェアです.

[#12501] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/03/01

In message <199903010918.SAA16824.keiju@bc.mbn.or.jp>

[#12503] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/03/01

けいじゅ@日本ラショナルソフトウェアです.

[#12511] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/03/02

In message <199903011352.WAA17487.keiju@bc.mbn.or.jp>

[#12526] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/03/04

けいじゅ@日本ラショナルソフトウェアです.

[#12540] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/03/04

In message <199903040444.NAA21095.keiju@bc.mbn.or.jp>

[#12664] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/03/09

けいじゅ@日本ラショナルソフトウェアです.

[#12691] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/03/09

In message <199903090457.NAA00259.keiju@bc.mbn.or.jp>

[#12719] Re: [REQ] rlex.rb — keiju@... (石塚圭樹 ) 1999/03/10

けいじゅ@日本ラショナルソフトウェアです.

[#12729] Re: [REQ] rlex.rb — kjana@... (YANAGAWA Kazuhisa) 1999/03/10

In message <199903091600.BAA02510.keiju@bc.mbn.or.jp>

[#12315] RE: (閑話) 「 XML 開発者の日」にて Ruby 紹介ありですね。 — 助田 雅紀 <masaki.suketa@...>

助田です.

13 messages 1999/02/24

[ruby-list:11926] Re: to_i,to_s の素朴な疑問

From: matz@... (Yukihiro Matsumoto)
Date: 1999-02-05 06:08:44 UTC
List: ruby-list #11926
まつもと ゆきひろです

In message "[ruby-list:11922] Re: to_i,to_s の素朴な疑問"
    on 99/02/05, HQss_YasuiS/hq_ss@omssv.hq.hitachizosen.co.jp <HQss_YasuiS/hq_ss@omssv.hq.hitachizosen.co.jp> writes:

|安井です。

|>オブジェクト指向言語にとって,ある値の型は非常に重要な要素で
|>すから無視する方向にはいかない方が良いのではないだろうかと考
|>えています.

|確認しておきたいのは、議論の対象は「レシーバ」ではなく「メッ
|セージに与える引数の多態性」です。

福嶋さんもおっしゃっているのですが,最初のメールからそれは読
み取れませんでした.すいません.Rubyが昔そうだったというのは
読み違えた文脈でのことですから,復活させることに意味はないで
しょうね.

|>  def foo(a)
|>    b=a+1         # b = "11" or b = 2
|>    return "x"*b  # "x"*11 or "x"*2
|>  end
|>
|>  foo("1")        # => "xxxxxxxxxxx"
|>  foo(1)          # => "xx"
|>
|>となるとちょっとまずい気がしません?
|
|全然です。例が悪すぎると思います。
|まず、レシーバが何なのか分りません。それから、例題が非現実的
|ではないでしょうか。

確かに人工的な例ですが,それが発生することを許容するのはいか
がなものでしょうかと思います.それに確かに + はメソッドです
が,明確にメソッドの形をしているわけでない以上,あまり右辺と
左辺で働きが違うのは考えものだと思います.

Perlで適当で変換してもあまり問題にならないのは,数値を期待す
る場合と,文字列を期待する場合とで演算子が異なるからです.
Rubyではそのような条件はないので,Perl以上になにをやってるか
分からなくなる気がします.

が,しかし,「変換が面倒だ」という手間の観点ではなく,引数に
よる多態という観点から議論することには賛成ですから,これはひ
とまずおいて置きましょう.

|もう一度簡単な例を挙げますのでこれで議論しませんか。
|
|簡略化した点オブジェクトです。
|--------------------------------------------------
|class Point
|def initialize(name,x=0,y=0)
|  @name, @x, @y = name, x, y
|end
|def x
|  @x
|end
|def y
| @y
|end
|def +(p)
|  case(p)
|  when Numeric
|   @x += p; @y += p
|  when Point
|   @x += p.x; @y += p.y
|  end
|end
|def print
|  printf "%s(%d,%d)\n",@name,@x,@y
|end
|end
|--------------------------------------------------

|この場合、+メソッドの引数に、NumericとPointを許し、他はエラー
|になります。(エラーになっていいのです!)

えーと,+ でレシーバの状態が変わるのはいかがなものかとか,
@x, @yの両方に同じ数を足して良いのか,とかいろいろ思うところ
はありますが,基本的なコンセプトである,Pointに対する加算は
数と点の両方を受け付けることがアリであるという点に反対はしま
せん.

|StringやNumericクラスの演算メソッドもこれと同様にならないかな
|と思うのです。

で,ですよ.String#+やNumeric#+が数値を受け付ける意味あるい
は効果について考えたいのです.メリット,デメリットも含めて.

まず,いくつかのバグが発見しにくくなるというデメリットがある
ことを理解していただいているでしょうか.もちろん,それは型を
ちゃんと認識していないのが悪いのだ,という安井さんの主張も分
かるんですが,多くの場合,ちゃんと型を認識するというのは型を
明示的に変換することよりも面倒なことです.

で,効果といえば,型を変換しなくても演算できるため,「ちゃん
と型を認識しなくてもなんとなく動く」ので,「型を認識する」と
いう理想とは反対方向の心理的効果が目立っちゃうような気がする
んですが,いかがでしょう? おまけに,「なんとなく」が自分の
思ったように動かない時には,びっくりすることになりますし.

|# Numericのサブクラスを自作すればすむことかも知れませんが、
|# 常にrequireしなければならないので面倒です。

結局「面倒だ」なんですか?

# このことについて話したのはいつごろでしたっけ?

                                まつもと ゆきひろ /:|)

In This Thread