[#15625] rb_hash_initialize — Takaaki Tateishi <ttate@...>

立石です.

22 messages 2002/01/04
[#15627] Re: rb_hash_initialize — matz@... (Yukihiro Matsumoto) 2002/01/04

まつもと ゆきひろです

[#15628] Re: rb_hash_initialize — Takaaki Tateishi <ttate@...> 2002/01/04

立石です.

[#15685] undefined method `inherited' for false (NameError) — WATANABE Hirofumi <eban@...>

わたなべです。

13 messages 2002/01/15
[#15686] Re: undefined method `inherited' for false (NameError) — nobu.nakada@... 2002/01/15

なかだです。

[#15757] 文字列→整数変換 — nobu.nakada@...

なかだです。

30 messages 2002/01/25

[#15830] [ 提案 ] puts, print 等を IO から分離 — UENO Katsuhiro <unnie@...>

うえのです。

14 messages 2002/01/31

[ruby-dev:15641] Re: rb_hash_initialize

From: Takaaki Tateishi <ttate@...>
Date: 2002-01-05 09:25:22 UTC
List: ruby-dev #15641
At Sat, 5 Jan 2002 13:52:55 +0900,
nobu.nakada@nifty.ne.jp wrote:
> > このHashと似た機能を提供するようなキャッシュ付きProcのためにク
> > ラスを追加することはrubyとしては許容できるものでしょうか?
> 
> それは組み込みとしてですか? 数行で済むので要らないのでは。

できれば組み込みが良いですが,ライブラリとしてでもいいかも
しれないですね.引数の件も含めると僕が最初に想像していたも
のはこんな感じになると思います.

class Cash < Hash
private
  alias hash_aref []
  alias hash_aset []=

public
  def initialize(*args)
    super(*args){|h,key| hash_aset(key,yield(*key))}
  end

  def call(*args)
    hash_aref(args)
  end

  def define(*args)
    v = args.pop
    hash_aset(args,v)
  end

  alias [] call
  alias []= define
end
def cash
  Cash.new{|x| yield(x)}
end
-- 
Takaaki Tateishi <ttate@kt.jaist.ac.jp>

In This Thread