[#17615] substitution at when-clause — Takaaki Tateishi <ttate@...>
立石です.
まつもと ゆきひろです
At Tue, 2 Jul 2002 02:54:01 +0900,
まつもと ゆきひろです
At Tue, 2 Jul 2002 13:30:17 +0900,
まつもと ゆきひろです
立石です.
まつもと ゆきひろです
青山です。
立石です.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
At Wed, 3 Jul 2002 17:48:58 +0900,
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#17625] Re: Getting CGI arguments as scalars — Wakou Aoyama <wakou@...>
青山です。
[#17662] update irb to cvs repository — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
In article <200207041003.TAA06746.keiju@ishitsuka.com>,
けいじゅ@日本ラショナルソフトウェアです.
[#17676] generation GC — Minero Aoki <aamine@...>
あおきです。
[#17706] self in block — masaki <GEC01122@...>
[#17714] Re: self in block — masaki <GEC01122@...>
[#17722] Re: self in block — masaki <GEC01122@...>
[#17725] Re: self in block — masaki <GEC01122@...>
まつもと ゆきひろです
In article <1027176584.577546.14709.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
At Sun, 21 Jul 2002 01:10:02 +0900,
まつもと ゆきひろです
[#17730] Re: self in block — masaki <GEC01122@...>
At Sat, 20 Jul 2002 21:27:58 +0900,
高橋征義です。
けいじゅ@日本ラショナルソフトウェアです.
[#17764] Re: self in block — masaki <GEC01122@...>
まつもと ゆきひろです
In article <1027383423.558649.31176.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1027404202.545188.1283.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1027406979.880878.1358.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1027409151.187595.1406.nullmailer@picachu.netlab.jp>,
前田です。
In article <87bs8xkfqr.wl@studly.priv.netlab.jp>,
前田です。
[#17774] Re: self in block — masaki <GEC01122@...>
[#17832] Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG. — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#17840] Re: new mathn [Re: Rational#to_int ← String#center] — keiju@... (石塚圭樹)
けいじゅ@日本ラショナルソフトウェアです.
[#17851] undef_method ? — Shin-ichiro HARA <sinara@...>
原です。
[#17855] non-blocking IO — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
[#17867] parenthesize argument(s) for future version — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
[ruby-dev:17747] Re: self in block
正木です。
In message "[ruby-dev:17738] Re: self in block"
matz@ruby-lang.org (Yukihiro Matsumoto) writes:
|すみません。私にとって「自然」というのは意味がないので、どう
|してそのselfが無名関数自身を指すべきなのか、それから正木さん
何を自然と思うかという感覚は、非常に大事なことだと思っていますが、
伝わらなければ意味がないことも事実です。
この場合の判断基準は
"本来不必要な情報は使わない"
です。
以前に
[ruby-list:35087] Re: Y Combinator
で書いた例で具体的に説明します。
class Function
attr_accessor :hash
def initialize(hash={},*parameter)
@hash=hash
@para=parameter
@lambda=eval "lambda{"+yield+"}"
end
def [](x)
@hash[x] || @hash[x]=@lambda.call(x,*@para)
end
end
ここで
Fact=Function.new({0=>1}){"|n| n*self[n-1] "}
と
Fact=Function.new({0=>1}){"|n| n*Fact[n-1] "}
を比べると、後者は、本来不必要な関数名、を使っている点で前者より
劣ります。そのために
関数名を換えたら block 内の関数名もそれにあわせて換えないといけない。
小文字の関数名は使えない。
といった欠陥が生じます。
前者のような書き方ができるためには self が関数自身を指すことが必要です。
|してそのselfが無名関数自身を指すべきなのか、それから正木さん
|がblockの新仕様に期待するものはなんなのか、
原さんに
|しかし、lambda の上に eval までされると、いよいよ頭がぐちゃぐちゃ
|に、、、(^^;
と言われた上記の initialize を
def initialize(hash={},*parameter,&block)
@hash=hash
@para=parameter
@lambda=block
end
のようにすっきり書きたいということです。
|あとblockの形の方
|が使いやすいと思う理由はなにかということについて教えていただ
|けませんか?
無名関数の受渡し方として
Fact=Function.new({0=>1}){<n> n*self[n-1] }
という形が一番簡潔だと思うからです。