[#38020] irb で %W(#{...}) — yoshihisa masuda <sacong@...>
マスダといいます。
[#38036] undef variable — hirocy <hirocy@...>
hirocyです.
[#38039] proc method — "K.Sasada" <ko1@...>
こんにちは。ささだです。
[#38056] ファイル書換え? — 中村文建 <tx6f-nkmr@...>
初めまして、MLに参加させて頂く中村と申します。
[#38057] [ANN] Ruby-GNOME2-0.6.0 — Masao Mutoh <mutoh@...>
むとうです。
[#38059] [ANN] rbbr-0.3.0 — Masao Mutoh <mutoh@...>
むとうです。
[#38073] module extendable? — Takeshi Horinouchi <horinout@...>
堀之内と申します。
[#38080] ポートが閉じているときの例外など — Mitsuru Ogino <ogino@...>
荻野と申します。いつも質問や要望ばかりですみません。
なかだです。
いわおかです。
荻野です。
なかだです。
いわおかです。
In message <20030812150516.GV37221@barber.fe.rn.tuat.ac.jp>
中川と申します。
In message <20030814.140757.707824131.tetsuo@sapphire.siz.nes.nec.co.jp>
なかだです。
In message <200308160517.h7G5HcPL012839@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In message <200308180959.h7I9xnb7001977@sharui.nakada.kanuma.tochigi.jp>
[#38090] ruby-1.8 で eruby が SEGV — Kazuhiko <kazuhiko@...>
かずひこです。
[#38104] XMLRPC::ModRubyServer — OHARA Shigeki <os@...>
大原です。
[#38122] ruby-tcpwrap and mkmf.rb — Takahiro Kambe <taca@...>
こんにちは。
At Sat, 16 Aug 2003 12:51:55 +0900,
In message <200308160518.h7G5IXPL012842@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In message <200308160714.h7G7ErPL014647@sharui.nakada.kanuma.tochigi.jp>
前田です。
In message <87d6f3znlc.wl@kirk.priv.netlab.jp>
前田です。
わたなべです。
[#38164] Ruby1.8.0でRuby-PostgreSQLがビルドできない — kensaku Maki <sakaki@...>
はじめまして、まきと申します。
[#38183] String << の動作につきまして — kuto@...
うと と申します。
たけ(tk)です。
ふなばです。
たけ(tk)です。
ふなばです。
たけ(tk)です。
ふなばです。
ども、西啓一朗@Ktouth Brand. です。
ふなばです。
ども、西啓一朗@Ktouth Brand. です。
[#38195] 理解の進め方(Re: String << の動作につきまして) — Tadashi Oh-Ya <toy@...>
おおやです。
たけ(tk)です。
たけ(tk)です
In "[ruby-list:38206] 理解の進め方:シュールな世界"
[#38198] Tmailで送るメールに日付がつけられなくなりました — 川田誠司 <kawada.seiji@...>
はじめまして
青木です。
[#38256] かみ砕いた説明をすべき範囲 — 西 啓一朗 <receiver@...>
ども。西啓一朗@Ktouth Brand. です。
なかだです。
たけ(tk)です
なかだです。
たけ(tk)です
いわおかです。
たけ(tk)です
まつもと ゆきひろです
たけ(tk)です。
たけ(tk)です。
[ruby-list:38219] Re: String <<の動作につきまして
酒匂です。
At 00:45 03/08/25 +0900, 西 啓一朗 wrote:
>読んでないレスがあることに気づいて、慌てて読み返し、思いっきり
>後悔しています(^_^;)
>まるっきりピエロだ……
まああまり恐縮しないで下さい。
もともと私も、たけさんの呼びかけ
>次のような(初心者にとってはおそらく不可思議な)現象を、どのような言葉で
>説明すれば、分かりやすく、かつ、比較的正確に理解してもらえるか、を一緒に
>考えていただければ幸いです。
に、「面白そう」と思って横から勝手に割り込んだだけですので。
まあ私の説明もスコープなどについては全然触れていませんし、
まだまだ不完全ではあります。
皆で議論百出するところが面白いところですし、
勉強にもなります。
手前味噌で恐縮ですが、
自分の今回の説明を読み返して一つ面白いなと思ったところは、
「定数とは、一度オブジェクトに貼ると他のオブジェクトには
貼り替えにくい名札」というあたりでした。
Ruby だと文句を言いながらも、定数の名札をあるオブジェクトから
別のオブジェクトに貼り替えるのを許してくれますから、
「貼り替えにくい」なんて表現になっているのですが。
まあ全く許さない、となっていれば「定」数という「迫力」も
増していたかもしれませんが、私は今の仕様の方が実用上
は好みです。
ちなみに、ふなばさんも触れていたように、今回の話題は
昔別の ML でも出たことがありました。
そのとき私が書いたものは、以下のようなものです。
ここではスコープめいた話にも触れています。
それに比べると今回のものはあまり進歩はしていないのですが。
---<quote>----------------------------------------------------
ちょいと擬人化が過ぎるかもしれません。
#それに既に似たようなご意見も出ていたと思いますが。。。
* * *
Ruby プログラムの中に現れる「変数」とはその場所で仕事をすすめる
ために必要な「名札」に過ぎません。
ここでその名札が重要なのは、あくまでも使う側にとってであって、
「使われる側(オブジェクト)にはさしたる問題ではない」のが基本だと思います。
たとえば
def sum (a, b)
a.value + b.value
end
というメソッドがあるとします。
名札 a, b を用意して待っているのは sum というメソッド自身です。
sum は外から渡されてくるオブジェクトに対して、自分の仕事を
進めやすいように名札をつけます。渡されてくるオブジェクトが
外でどのような名前で呼ばれていたかはここでは関係ありませんし、
そのことを気にしたくありません。
このメソッドが呼ばれると、sum は a という名札をつけて入ってきたオブジェクト
と b という名札をつけて入ってきたオブジェクトそれぞれに value という
メソッドを投げかけて、その戻り値を加算 (+) します。加算された結果は
メソッドの戻り値になります。
実は同一のオブジェクトが a, b 両方の名札を付けて入ってきたのかも
しないのですが、sum にとっては実際にやってきたのが一人か、二人かは
問題ではありません。sum メソッドの中で
「a さん」と呼んで答えたオブジェクト、「b さん」
と呼んで答えたオブジェクトそれぞれに value メソッドの評価を
依頼するだけです。
ここでオブジェクトに付けられた名札は、あくまでもこのメソッドの中だけ
で意味のあるものなので、sum メソッドが終了すると、名札も自動的に
消滅してしまいます。sum を呼び出した側のメソッドも、第一引数と
して渡したオブジェクトが sum の中でどのような名前で呼ばれていたかを
知ることはできませんし、知る必要もありません。
もちろん名札によってはもっと広い範囲で通用するものもあります。
たとえば @sum というインスタンス変数を用意すると、この名札の
通用範囲はある特定のインスタンスの内部全域に広がります。
ただ、そうして適用範囲が広がったとしても、変数の名前はあくまでも使う側に
とって意味があり、その名札を通して使われる側(オブジェクト自身)にとっては
さして意味がないということを理解しておくことが大切です。
-----------------------------------------------------------------------
<Sako Hiroshi> -- to design is human, design is our business
http://www02.so-net.ne.jp/~sakoh/ mailto:sakoh@ba2.so-net.ne.jp
Designers' Den Corporation : and for now, No Peace, No Future.
-----------------------------------------------------------------------