[#38322] irbsh を動かしたい — Shin-ichiro HARA <sinara@...>
原です。
8 messages
2003/09/01
[#38326] Re: irbsh を動かしたい
— rubikitch <rubikitch@...>
2003/09/01
From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>
[#38336] bug? ($. in Ruby 1.8.0) — Takeshi Horinouchi <horinout@...>
堀之内と申します。
4 messages
2003/09/02
[#38341] String#reverse! のバグ? — Kazuhiko <kazuhiko@...>
かずひこです。
11 messages
2003/09/03
[#38342] Re: String#reverse! のバグ?
— matz@... (Yukihiro Matsumoto)
2003/09/03
まつもと ゆきひろです
[#38373] 正規表現オブジェクトについて — masao hamada <bunhamad@...>
8 messages
2003/09/07
[#38383] Ruby-GNOME2-0.7.0 — Masao Mutoh <mutoh@...>
むとうです。
6 messages
2003/09/07
[#38404] rnoizanmdig lteter odrer(randomizing letter order) — HASHIMUKAI Toshikatsu <hashi@...>
spamみたいなsubjectですいません。
5 messages
2003/09/17
[#38425] [ANN] 本を出しました — 堀川 久 <vzw00011@...>
こんにちは。
12 messages
2003/09/24
[#38426] Re: [ANN] 本を出しました
— matz@... (Yukihiro Matsumoto)
2003/09/24
まつもと ゆきひろです
[#38428] whenの評価の順序 — URA Takefumi <hage@...>
浦です。
8 messages
2003/09/25
[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本発売