*namu* です。

  高橋さん、回答ありがとうございます。

TAKAHASHI Masayoshi <maki / rubycolor.org> wrote:
> どのプログラミング言語の経験があるかによるかとも思うのですが、
> 例えばPerlなひとには、「やっぱり正規表現ってオブジェクトだよね」
> とか言って、
> 
>   UNAME_PAT = {"BSD" => /(Free|Net|Open)BSD/i, "Linux" => /Linux/i}
> 
>   def machinename(uname)
>     UNAME_PAT.each{|name, pattern|
>       if pattern =~ uname
>         return name
>       end
>     }
>     nil
>   end
> 
>   machinename("freebsd") #=> "BSD"

  これ、良いですね。僕自信 Perl からの改宗なので、こういうのを見せられ
ると、グッときますね。しかも、値どころか key にも正規表現が使えるのは
本当に強力ですよね。

> あるいはJavaなひとには、「ふつうクラスってオブジェクトだよね」
> とか言って、
> 
>   class Foo
>     def name
>       "foofoo"
>     end
>   end
>   class Bar
>     def name
>       "barbar"
>     end
>   end
>   classpat = {"foo" => Foo, "bar" => Bar}
> 
>   obj = classpat["foo"].new()
>   p obj.name #=> "foofoo"

  Java は経験が無いのですが、それでも、この script の説得力は十分に感
じられます。

  こんな感じで、色々な言語や環境向けの、グッと来る script を、何処かに
収集しておくと、 Ruby の普及に役立つかも知れませんね (^^)


  ちなみに、今ターゲットにしている相手は二人いて、一人は C が母国語で
unix な環境の人なのでシェルスクリプトも心得てます。もう一人は VzEditer
のマクロと、Lotus123 や Excel のマクロ (なんじゃそりゃ (^^;) な人なの
で、こっちの方は取り敢えず"邪道編"を貸し与えておきましたから、それだけ
で落ちるんじゃないかと思ってます。

----------
*namu*
(Yuji Asakawa)