From: jzakiya@...
Date: 2018-01-25T01:29:22+00:00
Subject: [ruby-core:85091] [Ruby trunk Feature#14399] Add Enumerable#product

Issue #14399 has been updated by jzakiya (Jabari Zakiya).


Actually, after looking at the docs for `Array#product` a
better name would be `Array#combinations`, which is a little
longer, but I think is more accurately descriptive and intuitive.
Oh well, cats out the bag now.

----------------------------------------
Feature #14399: Add Enumerable#product
https://bugs.ruby-lang.org/issues/14399#change-69804

* Author: jzakiya (Jabari Zakiya)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
For similar reasons for creating `Enumerable#sum` a companion method
`Enumerable#product` is also very useful. Taking the product of
numbers in arrays is a common operation in many numerical algorithms,
especially in number theory and cryptography, and its optimization in
Ruby will make it more conducive to math heavy algorithms and tasks.

This

```
> [2,3,5,7].reduce(:*) => 210
```

can be optimized to this

```
> [2,3,5,7].product => 210
```

It should also allow an initial value

```
> [2,3,5,7].product(2) => 420

> [2,3,5,7].product(0.5) => 105
```
Crystal already has this `method`.



-- 
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>