[#28230] bcc32 memory manager — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

15 messages 2006/01/18

[#28243] FUNCTION_CALL_MAY_RETURN_TWICE — Hajimu UMEMOTO <ume@...>

梅本です。

18 messages 2006/01/20

[#28270] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

17 messages 2006/01/23
[#28271] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/01/23

山本です。

[#28272] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — WATANABE Hirofumi <eban@...> 2006/01/23

わたなべです。

[#28273] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/01/23

山本です。

[#28274] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/01/24

山本です。

[#28275] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "U.Nakamura" <usa@...> 2006/01/24

こんにちは、なかむら(う)です。

[#28286] SEGV with zlib — Tanaka Akira <akr@...17n.org>

最近、Data オブジェクトの free 関数が気になっているのですが、

24 messages 2006/01/30
[#28303] Re: SEGV with zlib — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/02/06

山本です。

[#28304] Re: SEGV with zlib — Yukihiro Matsumoto <matz@...> 2006/02/06

まつもと ゆきひろです

[#28305] Re: SEGV with zlib — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/02/06

山本です。

[#28306] Re: SEGV with zlib — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2006/02/06

山本です。

[#28307] Re: SEGV with zlib — Tietew <tietew-ml-ruby-dev@...> 2006/02/06

[#28308] Re: SEGV with zlib — Yukihiro Matsumoto <matz@...> 2006/02/06

まつもとゆきひろです。

[ruby-dev:28220] Re: ANDCALL operator (Re: [ruby-list:41768] Re: nilの扱い)

From: Takaaki Tateishi <ttate@...>
Date: 2006-01-13 20:01:58 UTC
List: ruby-dev #28220
Takaaki Tateishi wrote:
> ちょっとした案ですが、nil?をブロック付きで呼べるようにするというのはどうでしょう?
> obj.nil?{|n| n[:b]}

これだけではいまいちなので、こういう例を用意してみました。
ブロックの再帰や、同じメソッドのメソッドチェーンならinjectでもいけるかなと思ったのです。

# ちなみに、 &? オペレータに対抗するわけでなく、&? そのものは欲しいと思っています。
# |? も需要ありそうですね。

class Object
  alias _nil? nil?
  def nil?(&block)
    if( block )
      _nil? ? true : block.call(self)
    else
      _nil?
    end
  end
end

module Enumerable
  def injectf(base, f, &block)
    inject(base){|acc,elem|
      if( block )
        acc.__send__(f){|*xs|
          block.call(elem,*xs)
        }
      else
        acc.__send__(f,elem)
      end
    }
  end
end

data = {
  :a => nil,
  :b => {:aa => 2, :bb => 3},
  :c => {:cc => nil},
  :d => nil,
}

p [1,2,3].injectf(0, :+)

p [:a,:aa].inject(data){|acc,elem| acc.nil?{|n| n[elem]}}
p [:b,:aa].inject(data){|acc,elem| acc.nil?{|n| n[elem]}}

p [:a,:aa].injectf(data, :nil?){|elem,n| n[elem]}
p [:b,:aa].injectf(data, :nil?){|elem,n| n[elem]}
-- 
Takaaki Tateishi <ttate@ttsky.net>


In This Thread