Issue #15143 has been reported by sawa (Tsuyoshi Sawada).

----------------------------------------
Feature #15143: Extend `Enumerrable#to_h`
https://bugs.ruby-lang.org/issues/15143

* Author: sawa (Tsuyoshi Sawada)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Often, we call `Array#to_h` to the result of  `Enumerable#map`:

```ruby
(1..5).map{|x| [x, x ** 2]}.to_h
#=> {1=>1, 2=>4, 3=>9, 4=>16, 5=>25}
```

I am thinking of a feature to do this in a single method call.

Currently, `Enumerable#to_h` does not accept a block. I propose that, when `Enumerable#to_h` is called with a block (that has a subarray representing a key-value pair), return a hash that would be returned by applying the block to `map`, and `to_h` to the result:

```ruby
(1..5).to_h{|x| [x, x ** 2]}
#=> {1=>1, 2=>4, 3=>9, 4=>16, 5=>25}
```

Ideally, I request this to be done internally to Ruby without creating an intermediate parent array.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>