[ruby-core:89088] [Ruby trunk Feature#15143] Extend `Enumerrable#to_h`

From: sawadatsuyoshi@...
Date: 2018-09-20 02:23:29 UTC
List: ruby-core #89088
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:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next