[#8599] period.rb — akira yamada / やまだあきら <akira@...>
[#8606] can't build 1.1b9_28 on digital-unix — Go Nakagawa <nakagawa@...>
中川といいます。みなさんはじめまして。
まつもと ゆきひろです
中川です。
まつもと ゆきひろです
中川です。
まつもと ゆきひろです
中川です。
まつもと ゆきひろです
中川です。
まつもと ゆきひろです
中川です。
[#8609] Re: [ruby-dev:3184] Re: once function — "MAEDA Shugo" <shugo@...>
前田です。
[#8623] method iterator — Kazuhiro HIWADA <hiwada@...>
ひわだです。最近いろんな話が出て来て面白いです。
[#8648] sin(complex) — toyofuku@...
豊福@パパイヤです。
[#8649] [BUG] Segmentation fault — IWAOKA Masahiro <iwaoka@...>
最近はすっかり ruby にお世話になっております。岩岡です。
まつもと ゆきひろです
わたなべです.
岩岡です。
岩岡です。
自己フォロウを続けてしまいまして申し訳ございません。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
立石@JAISTです。
まつもと ゆきひろです
まつもと ゆきひろです
立石@JAISTです。
まつもと ゆきひろです
立石です。
まつもと ゆきひろです
[#8665] Re: Equivalence.rb — toyofuku@...
豊福@パパイヤです。
[#8739] [BUG?] mathn.rb — Yoshiyuki Kusano <kusano@...>
草野です.
[#8747] Bitwise operators for String — Inaba Hiroto <inaba@...>
1.1cのリリースも近いのに、今頃こんなことを言いだしても仕方ないのかも知
まつもと ゆきひろです
[#8749] 新人にお勧めのバージョン — Sinichiro Dezawa <dezawa@...>
出沢@フジフイルム です
[#8766] Compiling ruby-1.0-971225 — Shin-ichro Hara <sinara@...>
原です。
[#8770] ruby 1.1c0 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
東芝の田中です。
In message <199807170546.OAA25091@picachu.netlab.co.jp>
出沢です
まつもと ゆきひろです
こんにちは、鄭です。
まつもと ゆきひろです
出沢@フジフイルム です
[#8778] tcltklib on 1.2 — "Kikutani, Makoto" <kikutani@...>
きくたにです。
[#8845] mapping a tagged file onto a class — Takao KAWAMURA <kawamura@...>
各行にフィルード名と値が含まれ、レコードの区切りは空行という、
まつもと ゆきひろです
In message "[ruby-list:8847] Re: mapping a tagged file onto a class"
原です。
> インスタンス変数にしたい気持ちはとてもわかるんですが、
原です。
[#8861] unary - in Complex — aito@...
あ伊藤です.
[#8862] domain name for ruby in US — gotoken@... (GOTO Kentaro)
ごとけんです
[#8872] do while — Kazumi Okamoto <kazusan@...>
はじめまして、岡本と申します。
こんにちは 小澤@日立 です。
岡本です。
[#8875] english manual 1.1c - rand — "Kikutani, Makoto" <kikutani@...>
rand(max)
[#8892] nil + 1, or Integer.to_i — Sinichiro Dezawa <dezawa@...>
出沢です
まつもと ゆきひろです
まつもと ゆきひろです
matz> 良く見るとto_i,to_fともにNumeric.htmlに記述があります.これ
けいじゅ@日本ラショナルソフトウェアです.
出沢です
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
matz> Numeric#to_iとか,Integer#to_iとかの実装があれば良い問題なん
かんだです。
まつもと ゆきひろです
前田です。
[#8897] ruby-mode.el & font-lock-mode — Takao KAWAMURA <kawamura@...>
ruby-mode.el($Revision: 1.1.1.2.2.19 $)を便利に使わせて頂い
[#8907] Perl Conference Japan in Nov. — "Kikutani, Makoto" <kikutani@...>
python-ml-jpに入ってる人じゃないとわからないネタかもしれないですが、
[ruby-list:8627] Re: once function
前田です。
matz@netlab.co.jp (Yukihiro Matsumoto) wrote:
>あ,ゴマカすって,インスタンス変数には使えない名前があるって
>ことだったんですねえ.やっぱり見落としでした.これだったらイ
>ンスタンス変数名は
>
> @__#{id}__
>
>にしたらどうでしょう.展開すると @__5879__ みたいな感じにな
>ります.
なるほど。
>|そういえば、このonceは各インスタンス毎に一回ずつ評価される
>|のですが、Eiffelの場合全部のインスタンスを通じて一回しか
>|評価されなかったような気がします。
>|どちらの動作が望ましいのでしょう。
>
>きっと,Eiffel流でしょうね.その場合はどうやって実装するのが
>望ましいかな.インスタンス変数ではなく,定数でテーブルを用意
>するのかな.
そうですね。
メソッド本体と同様にHashで管理するようにしてみました。
--
前田 修吾
----------
# once-method.rb
module OnceMethod
BODIES = {}
VALUES = {}
end
class Object
private
def def_once_method(name, &body)
if name.kind_of? Integer
name = name.id2name
end
OnceMethod::BODIES[body.id] = body
def_once_method_i(name, body.id)
end
def def_once_method_i(name, id)
eval %{
def #{name}
eval 'def #{name}; OnceMethod::VALUES[#{id}]; end', TOPLEVEL_BINDING
OnceMethod::VALUES[#{id}] = OnceMethod::BODIES[#{id}].call
OnceMethod::BODIES.delete(#{id})
OnceMethod::VALUES[#{id}]
end
}, TOPLEVEL_BINDING
end
end
class Module
private
def def_once_method_i(name, id)
module_eval %{
def #{name}
#{self}.module_eval 'def #{name}; OnceMethod::VALUES[#{id}]; end'
OnceMethod::VALUES[#{id}] = instance_eval(&OnceMethod::BODIES[#{id}])
OnceMethod::BODIES.delete(#{id})
OnceMethod::VALUES[#{id}]
end
}
end
end