From: "yhara (Yutaka HARA)" Date: 2012-10-25T19:38:45+09:00 Subject: [ruby-core:48257] [ruby-trunk - Feature #6641] Hash.auto constructor Issue #6641 has been updated by yhara (Yutaka HARA). Target version changed from 2.0.0 to next minor ---------------------------------------- Feature #6641: Hash.auto constructor https://bugs.ruby-lang.org/issues/6641#change-31535 Author: trans (Thomas Sawyer) Status: Open Priority: Normal Assignee: Category: core Target version: next minor =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/