[#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:17759] Re: self in block
At Mon, 22 Jul 2002 02:42:10 +0900,
> Y lambda {|f| lambda {|arg| ...}}
>
> というのは(f のスコープを除いて)
>
> f = lambda {|arg| ...}
>
> と等価なので、「実は使いたい場面はある」というのは信じられません。
> Y を使う利点というのはどこにあるんでしょうか?
一時的な変数であるfに他の値が代入されない限りは,機能的に
等価になることは理解できます.そのときは
def foo
...
yield(...)
...
end
f = lambda{|arg| ... f[arg'] ... }
foo(&f)
# ここで,f は defined
と書くことによって,再帰的なブロックを定義したいためにfという
一時的な変数をfooを呼んでいるスコープで宣言/定義することを避
けたかったのです.再帰的な処理でなければfを定義せずに,
foo{|arg| ... }
と書いて,
f = lambda{|arg| .... }
foo(&f)
とはしない場合があると思います.このような場合は,fをそこで定義
する必要はない場合で,つまり再帰のためにcall_current_block()やY
を使いたい場合と僕が書いたものです.それで,Yを使うなら,
foo(&(Y lambda{|f| lambda{|arg|... f[arg'] ..}}))
# ここで,f は undefined
ということを思ったのですが,Yは普通は使わないし,あえて使おうとも
普通は思わないです.なら,ブロック自体をyield()のように再び呼び出
せればいいのではないかと考え,
foo{|arg|
... call_current_block(arg') ...
}
ということを提案したわけですが,
foo{|arg|
f = lambda{|_arg| ... f[_arg'] ... }
f[arg]
}
# ここで,f は undefined
というように,ローカルにfを定義するだけで十分だなと気がついたので,
ちょっと後悔しました.
ただ,今でもcall_current_block()があれば楽にかけるのになと思う気持
ちはありますがかなり緩くはなりました.
--
Takaaki Tateishi <ttate@kt.jaist.ac.jp>