[ruby-list:38335] Re: シュールな名前

From: rubikitch <rubikitch@...>
Date: 2003-09-02 06:57:58 UTC
List: ruby-list #38335
From: Yuji Asakawa <namu@venus.dti.ne.jp>
Subject: [ruby-list:38330] Re: シュールな名前
Date: Mon, 1 Sep 2003 15:48:09 +0900

るびきちです。

>   初心者に、 Ruby を理解してもらうために、どう説明するべきか。有意義で
> 興味深い話題ですね。
そうですね、いろいろ考えさせられます。

>   対象とする、初心者のレベルによると思うのですが、『Ruby の冒険』が対
> 象にしている初心者は、以下のプログラムを、「難しそう、分らない、飛ばし
> てしまおう」 (『Ruby の冒険 旅立ち篇』p17より) と思うレベルなので、
読んでいないので勝手な意見ですみません。
破壊的メソッドというものは危険なので、最初のうちは説明しなくてもいいのでは?
とか思ってしまいました。慣れていないとハマりますし。慣れてる人でもまれにはまります。

変数のモデルですが、今ちょっとひらめいたものとして、
数学での「これをYとおく」と書く変数みたいなものではないでしょうか?
数学の変数モデルなら少しは馴染があるでしょう。
Y = (a-b) * (a-b)
という式がある。
ここで
X = a-b
とおくと
Y = X * X
といった感じで。まぁ「名前」みたいなものですか。
その後はaとbのことは一時的に忘れてXとYの関係について考えていけばいいみたいな。
でも、a-bという式にXという名前がつけられているということは知りません。
さらに、aとbの値が変わってもXは変わらないというシュールさも残ってしまいますが(^^;
(aとbを定数とみるみたいな、そんなイメージで通していきましょう)
ここらへんが違いはあるのですが、とりあえずこれで説明していくと、

> second,minute,hour = Time.now.to_a
Time.now.to_aの最初の3つをそれぞれsecond, minute, hourとおく。

> case hour
hourが

> when  6..10 ; s = "おはよう Ruby!"
6から10のときは
s = "おはよう Ruby!"
とおく。

> when 11..17 ; s = "こんにちは Ruby!"
> when 18..21 ; s = "こんばんは Ruby!"
> when 22..23 ; s = "そろそろ寝よう Ruby.."
同様に・・・・。

> else        ; s = "こんな時間に? Ruby??"
そうでなければ 
s = "こんな時間に? Ruby??"
とおく。

> s << "\n\n今 #{hour}時#{minute}分#{second}秒です"
> 
> Phi.message_dlg( s , Phi::MT_CUSTOM, [Phi::MB_OK] )
> -----『Ruby の冒険 旅立ち篇』p16, 17より-----------
入門書の冒頭にいきなり<<のような破壊的メソッドを持ち出すのは((*かなり*))まずい気がします。
ここは無難に、
s = s + "\n\n今 #{hour}時#{minute}分#{second}秒です"
か
s2 = s + "\n\n今 #{hour}時#{minute}分#{second}秒です"
とした方がいい気もします。
ここで数学変数モデルは破綻していましますが、別な変数ならなんとかぎりぎり説明できそうです。

でも、数学の「=」とRubyの「代入」とはまた違いますね。

つらつらとここまで書いてきたけど、やっぱり「名札」と同じだね(^^;;;;
とっかかりとしては数学の「X=a-bとおく」に近い感じだと思わせた方が入りやすいのでは?
Rubyの変数は数学の変数よりも「便利」に作られているからそのうち破綻するのだが、
便利なところをでてきたときにおいおい説明していくとか。

> その様な人に、このプログラムの挙動を説明する時に、オブジェクト空間の存
> 在から説明するのは、酷な気がします。
それは100%同意します。

>   初心者に物を教える時には、興味を持続させるために、騙し賺して判った気
> にさせる、ということも必要な場合があると思いますし、この場合は、それに
> あたると思うのです。
うん。

# とりとめのない文章になっていましましたが、枯れ木も山のにぎわいということで許してください。

るびきち☆
http://www.rubyist.net/~rubikitch/ ←Ruby大衆化計画@移転
http://www.rubyist.net/~rubikitch/computer/irbshbook/ ←irbsh本発売

In This Thread