[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>

ruby-1.1b9_08 (07 からみたいですが)での話です。

15 messages 1998/04/08
[#7358] Re: Q: jcode.rb tr(String + nil) — matz@... (Yukihiro Matsumoto) 1998/04/08

まつもと ゆきひろです

[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)

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

19 messages 1998/04/08
[#7384] Re: [Q] Thread — keiju@... (Keiju ISHITSUKA) 1998/04/09

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

[#7385] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1998/04/09

まつもと ゆきひろです

[#7391] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1998/04/09

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

[#7471] scope — Wakou Aoyama <wakou@...>

青山です。

22 messages 1998/04/15
[#7474] Re: scope — WATANABE Hirofumi <watanabe@...> 1998/04/15

わたなべです.

[#7475] Re: scope — Wakou Aoyama <wakou@...> 1998/04/15

青山です。

[#7500] List on List — WATANABE Hirofumi <watanabe@...>

わたなべです.

26 messages 1998/04/15
[#7501] Re: List on List — matz@... (Yukihiro Matsumoto) 1998/04/15

まつもと ゆきひろです

[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>

荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。

13 messages 1998/04/15

[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>

えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった

29 messages 1998/04/16
[#7601] Re: How to write Perl's `@a[@b] = @c' in ruby — WATANABE Hirofumi <watanabe@...> 1998/04/17

わたなべです.

[#7614] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro HARA <sinara@...> 1998/04/17

原です。

[#7626] Re: How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...> 1998/04/19

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

[#7628] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro Hara <sinara@...> 1998/04/19

原です。

[#7659] iteration with index (Re: How to write Perl's `@a[@b] = @c' in ruby) — shugo@... (Shugo Maeda) 1998/04/20

前田です。

[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>

原です。

32 messages 1998/04/21
[#7672] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/21

まつもと ゆきひろです

[#7674] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7675] Re: How to install beta versions — WATANABE Tetsuya <tetsu@...> 1998/04/21

>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:

[#7677] Re: How to install beta versions — Shin-ichiro HARA <sinara@...> 1998/04/21

原です。

[#7679] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7690] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/21

From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>

[#7700] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7710] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/22

From: matz@netlab.co.jp (Yukihiro Matsumoto)

[#7711] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7720] Re: How to install beta versions — chisaka@... 1998/04/23

[#7721] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/24

まつもと ゆきひろです

[#7724] Re: How to install beta versions — NAGAI Hidetoshi <nagai@...> 1998/04/25

永井@知能.九工大です.

[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>

きくたにです。

27 messages 1998/04/26
[#7730] mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/26

ごとけんです

[#7738] Re: mail index sort by From: — Kikutani Makoto <kikutani@...> 1998/04/27

きくたにです。

[#7757] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[#7758] Re: mail index sort by From: — akira yamada / やまだあきら <akira@...> 1998/04/28

[#7760] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[ruby-list:7368] Re: Q: jcode.rb tr(String + nil)

From: matz@... (Yukihiro Matsumoto)
Date: 1998-04-08 06:13:09 UTC
List: ruby-list #7368
まつもと ゆきひろです

少々ruby-devっぽい話題ですが,このままruby-listで.

In message "[ruby-list:7366] Re: Q: jcode.rb tr(String + nil)"
    on 98/04/08, 石塚圭樹 <keiju@Rational.Com> writes:

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

|>String#+とString#concatは「nilを受け付けるようにしようかなあ」
|>と思い始めてます.
|
|そうですね. そのぐらいはいいですかね...  Array#+/Array#concatでは許さ
|れていますしね.

Array#+やArray#concatは

  def +(obj)
    unless obj.kind_of? Array
      return self + obj.to_a
    end
    ...
  end

のようになってて,nil.to_aが[]を返すようになっている結果なの
でちょっと違うんですが.

|そうすると, nil == nil | false | [] | "" | 0 ってイメージになるのかな?

  nil.to_i => 0
  nil.to_s => ""
  nil.to_a => []

なのは確かですけど.どこででもそのように使って良いかっていう
とそうでもないと思います.実際,たとえばnil -> 0の変換は現状
では暗黙には行われませんから.

|今は, 論理演算(false) と +([],"",0), concat([],"")だけなのかな?

前述のようにArray#+とArray#concatは別とすると,現状では二項
演算子(または1引数のメソッド)で右辺のnilを特別扱いしているも
のはないはずです.いっそのこと,nilからの暗黙の変換は一切行
わない方が良いのかも知れません.String#+とかも含めて.

# さっきと言ってること違うんですけど

|どうせなら, 
|
|  nil.concat []or"" 
|  1 + nil
|
|も許します?

nil.concatっていうのはあんまり意味無いんではないでしょうか.
だってconcatって「レシーバに破壊的に追加」って意味ですけど,
nilには「追加」は出来ませんよね.

1+nilってのは今実装してみたんですけど,いろいろ考えるに必要
以上の暗黙の変換はバグの発見を遅らせるだけのように思うので,
これも止めとこうと思います.

となると後は

  nil + x

でxが整数,実数,文字列,配列の時はxを返す,という仕様はどう
なのか,ってことだけが残るんですが,これはこのままにしとこう
と思います.

# 実数や配列は外しても良いかも.

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

In This Thread