From: "trans (Thomas Sawyer)" Date: 2012-06-25T09:34:06+09:00 Subject: [ruby-core:45822] [ruby-trunk - Feature #6641][Open] Hash.auto constructor Issue #6641 has been reported by trans (Thomas Sawyer). ---------------------------------------- Feature #6641: Hash.auto constructor https://bugs.ruby-lang.org/issues/6641 Author: trans (Thomas Sawyer) Status: Open Priority: Normal Assignee: Category: core Target version: 2.0.0 =begin It is not uncommon to need a Hash following the pattern: Hash.new{ |h,k| h[k]={} } Another common example: Hash.new{ |h,k| h[k]=[] } This is common enough that it would very nice if we could have a more concise form, e.g. Hash.auto{ {} } Or for the second example: Hash.auto{ [] } Pure Ruby implementation is pretty simple: def Hash.auto Hash.new{ |h,k| h[k] = yield } end I think it would be nice to have in Core. This is secondary, but it just occurred to me. Could there even be a literal notation for the above? Something like: {}([]) ? =end -- http://bugs.ruby-lang.org/