[#41918] [Feature #3647] Array#sample(n, replace=false) — Kenta Murata <redmine@...>

Feature #3647: Array#sample(n, replace=false)

11 messages 2010/08/03

[#41966] [Bug #3673] PTY.getpty with IO.pipe doesn't finish on FreeBSD — Yui NARUSE <redmine@...>

Bug #3673: PTY.getpty with IO.pipe doesn't finish on FreeBSD

9 messages 2010/08/10

[#41969] [Feature #3675] String#prepend, String#>> — Sora Harakami <redmine@...>

Feature #3675: String#prepend, String#>>

15 messages 2010/08/10
[#41976] Re: [Feature #3675] String#prepend, String#>> — Yukihiro Matsumoto <matz@...> 2010/08/10

まつもと ゆきひろです

[#41974] Re: [ruby-cvs:36157] Ruby:r28955 (trunk): * complex.c (nucomp_to_[ifr]): don't allow complex with in-exact — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

7 messages 2010/08/10

[#42003] WEBrickに関するセキュリティ修正 (CVE-2010-0541) — Hideki Yamane <henrich@...>

12 messages 2010/08/11

[#42090] Math::atan2(0, 0) on ruby 1.9.2 — KUBO Takehiro <kubo@...>

久保です。

18 messages 2010/08/22
[#42092] Re: Math::atan2(0, 0) on ruby 1.9.2 — Kenta Murata <muraken@...> 2010/08/22

=1B$B$`$i$?$G$9!#=1B(B

[#42166] Ruby'sライセンスの、BSDLとのデュアルライセンスへの変更 — "NARUSE, Yui" <naruse@...>

Ruby's ライセンスは BSDL と Ruby's のデュアルライセンスになります。

14 messages 2010/08/31

[ruby-dev:42047] Re: Procのブロック呼び出しメソッド名を自由に設定

From: SASADA Koichi <ko1@...>
Date: 2010-08-17 04:27:38 UTC
List: ruby-dev #42047
 ささだです.


 この話ってどうなりましたかね.結構,ほしいなぁ,と思う場面もあるんです
が.特殊な each を持つオブジェクトとか,クラス作るまでもないなぁ,みたいな.


daily = lambda(:each){
  d = Date.new
  while d < end_date
    yield d
   d += 1end
  end
}

みたいな.

def (daily = Object.new).each
  ...
end

みたいにしてもできるといえばできるんですが,引数とかに入れるのは不向きで
すよね.


(2004/09/23 4:07), Yukihiro Matsumoto wrote:
> まつもと ゆきひろです
> 
> In message "Re: [ruby-dev:24309] Re: Procのブロック呼び出しメソッド名を自由に設定"
>     on Wed, 22 Sep 2004 21:42:02 +0900, Nowake <nowake@fiercewinds.net> writes:
> 
> |> それはどうなんだろう。考えてもみなかった発想ですが、フレキシ
> |> ブルすぎてワケワカのプログラムを発生させそうです。
> |
> |ある意味逆転の発想ですからね。
> 
> ですねえ。
> 
> |根っこには従来のProcの不満点
> |
> |1.クロージャを実際に使用している部分のコードを読むときに、
> |  「ブロックをcallする」というコードでは実際に何を行っているのか
> |  わからないことがある。
> |  ->どういう機能を実現するのか(コメント無しで)わかるようにしたい
> |2.クロージャを使って多態をすると(callを使わなくてはならないので)
> |  他のオブジェクトとの相性が悪い
> |  ->他のオブジェクトと同じメソッドで扱いたい
> |
> |があります。
> 
> ふむ。クロージャというものはそれがどのような働きをするものか
> は、変数名が示すものだと考えていました。だから、その名前(の
> 手続き)を実行するというのが唯一のメソッドだと。だからせいぜ
> い「()」というメソッドを(callの別名として)用意するくらいしか
> 考えられませんでした。
> 
> が、野分さんの発想は基本的に「なんかするオブジェクトがあって、
> それのメソッドを呼ぶ」わけですね。極端に言えばクロージャを指
> している変数名はそれこそなんでもよくて、させたい仕事をメソッ
> ドで指定する、と。
> 
> 若干理解が進んで改めて考えると、ますます斬新な発想です。自分
> の頭が固くなっていることを実感します。普段からJavaの無名クラ
> スやC#のdelegateとかに親しんでいるとこういう発想が出てくるの
> でしょうか。
> 
> |まつもとさんが危惧されているのは2.に関連する部分(Procを使っ
> |て他のオブジェクトとのお手軽な多態を行ってしまい、Procなの
> |か本物のオブジェクトなのか解らなくなる)かと思いますが、同
> |じメッセージを受け付けることができるのならば使う側からは同
> |種のオブジェクトとして扱っても問題無いでしょうから、それほ
> |ど心配する必要は無いかと思います。
> 
> いやいや、クロージャを普通のオブジェクトのフリをさせるという
> 発想が完全に抜け落ちてましたから、思考を適合できなかったとい
> うのが正直なところです。というか、まだ消化しきれてないんです
> がね。このアイディアはクロージャのあり方を変えてしまいそうで
> す。もうちょっと考えさせてください。
> 
>                                 まつもと ゆきひろ /:|)
> 


-- 
// SASADA Koichi at atdot dot net

In This Thread