[#1582] [BUG] Regexp — sinara@...

原です。あけましておめでとうございます。

16 messages 1997/01/06

[#1705] 正規表現 単独の ? — Sinichiro Dezawa <dezawa@...>

出沢です

14 messages 1997/01/15

[#1771] rectangle of canvas widget — Noritugu Nakamura <nnakamur@...>

18 messages 1997/01/19

[#1788] Text of TkCanvas — Noritugu Nakamura <nnakamur@...>

28 messages 1997/01/20
[#1800] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/21

まつもと ゆきひろです.

[#1802] Re: Text of TkCanvas — Noritugu Nakamura <nnakamur@...> 1997/01/21

[#1806] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/22

まつもと ゆきひろです.

[#1816] Re: Text of TkCanvas — Noritugu Nakamura <nnakamur@...> 1997/01/22

[#1819] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/22

まつもと ゆきひろです.

[#1865] ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1997/01/24
[#1878] Re: ruby-1.0-960124 available — WATANABE Hirofumi <watanabe@...> 1997/01/27

わたなべです.

[#1879] Re: ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto) 1997/01/27

まつもと ゆきひろです.

[#1880] Re: ruby-1.0-960124 available — WATANABE Hirofumi <watanabe@...> 1997/01/27

わたなべです.

[#1890] Re: ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto) 1997/01/27

まつもと ゆきひろです.

[#1926] [Dist] Mutex module — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

81 messages 1997/01/28
[#1929] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1934] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1935] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1938] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1940] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1944] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1947] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1960] Re: [Dist] Mutex module — sinara@... 1997/01/30

原です。

[#1969] Re: [Dist] Mutex module 1997/01/30

けいじゅ@SHLジャパンです.

[#1978] Re: [Dist] Mutex module — sinara@... 1997/01/30

原です。

[#1986] Re: [Dist] Mutex module 1997/01/30

けいじゅ@SHLジャパンです.

[#1989] Array as list/tupple (Re: [Dist] Mutex module) — matz@... (Yukihiro Matsumoto) 1997/01/31

まつもと ゆきひろです.

[#2008] [Request] static var? (Re: Array as list/tupple) — sinara@... 1997/01/31

原です。

[#1953] open (file descriptor) — j_kuro@... (Jun Kuroda)

黒田です.

16 messages 1997/01/29

[ruby-list:1610] Re: jchop

From: sinara@...
Date: 1997-01-06 12:14:26 UTC
List: ruby-list #1610
原です。

From: Sinichiro Dezawa <dezawa@miya.fujifilm.co.jp>
> > 最近、「メソッドが nil に対して用意されていない事で例外が起こる」
> > という事が、ずいぶん便利に思えてきました。この例外が起こらない様
> > にプログラムを書くことで、論理がすっきりするみたいです。例えば
> 
> わからん 。
> 詳しく説明してもらえます?

いえ、別に難しいことを言っているんでは無くて、変な所に nil が
出てきたたら、その前のコードでバグを入れている可能性が高いと
いうことです。

例えば fname = "/foo/bar" というファイルのベースのファイル名
を bar の文字数をカウントしたい時、

fname =~ /[^\/]+$/
print $&.length, "\n"

と書けますが、これに fname = "/foo/bar/" を食わせると、例外で
止まります。つまりこれは、趣旨に合わない入力がなされている事
を教えてくれてるわけです。(Perl だったら素通しで 0 を返すで
しょう。) fname = "/foo/bar/" のベースのファイル名の長さを
知っても意味が無いので、止まってくれていいわけです。この例外
が起こらないようにするには、ちゃんと入力になる fname が適切な
形をしているかどうかチェックを入れるか、例外捕捉をする事によっ
て、そのコードで何をしたいかが鮮明になると思います。

前の例は

>     self =~ /(.)$/
>     if $1 != nil && $1.size == 2
>       original_chop!
>     end

でしたが、「perl 書き」はしばしば、

    self =~ /(.)$/
    if $1.size == 2
      original_chop!
    end

と書くでしょう。しかし$1 が存在しないのに size を知りたがる
のは実はおかしい事であり、本当は存在するときだけ知りたいの
であるから、やはり

    if self =~ /(.)$/
      if $1.size == 2
        original_chop!
      end
    end

と書くほうが、やりたいことが素直に出ている様に思います。まあ、
そのいいかげんさが Perl のいいところであるわけで、何事もバラ
ンスの問題だけど。

foo が nil の時、 foo < "bar" は、やはり ruby に叱られるけれど、
出沢さんの様に意識的に nil を使っているのなら違いますが、多くの
場合、その前のアルゴリズムが間違っているんじゃないでしょうか。

それに nil をマイナス無限大にするのもかなり恣意的なもので、プラ
ス無限大にしてほしい人も結構いるんじゃないかしら。
---===-=-=-=-=-=-=-=-=======--=-=-=-==-=-===-=-=-=-=-=-=--=-==-=--
                            Shin-ichro Hara(Nagaoka Univ.of Tech.)




In This Thread