[#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:15633] Re: rb_hash_initialize

From: Takaaki Tateishi <ttate@...>
Date: 2002-01-04 20:18:28 UTC
List: ruby-dev #15633
立石です.

At Sat, 5 Jan 2002 03:48:49 +0900,
matz@ruby-lang.org (Yukihiro Matsumoto) wrote:
> |実行結果をキャッシュするという使われ方をする場合には,call があ
> |る方が良い気がします.
> 
> えー、どうして? なんでHashにcallが?

ひょっとして無意味かつ頓珍漢なことを提案してしまったのかも…
Hash#callがあると良いなと思った動機を書いておきます.

例えば,

  f = Hash.new{|h,key| h[key] = (1..key).inject(1){|a,b| a*b} }
  f[20000]
  f[20000]

  f = Proc.new{|i| (1..i).inject(1){|a,b| a*b} }
  f[20000]
  f[20000]

とした場合 Hash を使った方が2度目の [] は高速に行なえます.
一方,コールバック関数などとして f を使う時に,f[] を呼ぶのか,f.call
を呼ぶのかという点で,f.call を使うのが普通なのかなと思っていたのでし
た.そのため,Hash#callがあると良いかもと思い提案してみたのです.

# 僕のcall,[]に対する認識が間違っているのかも…
-- 
Takaaki Tateishi <ttate@kt.jaist.ac.jp>

In This Thread