Feature #2831

Matrix: each, all?, none?, each_with_index, ....

Added by Marc-Andre Lafortune almost 2 years ago. Updated 10 months ago.

[ruby-core:28400]
Status:Closed Start date:03/02/2010
Priority:Normal Due date:
Assignee:Marc-Andre Lafortune % Done:

100%

Category:lib
Target version:1.9.2

Description

There is Matrix#collect, but it would be useful to have Matrix#each and include Enumerable.

All methods that return anything else than an array are completely natural: Matrix#all?, Matrix#any?, Matrix#count, Matrix#none?, etc...

Others can be left alone or undefined (#sort, #drop, ...)

Matrix#each_with_index should go over all values, and yield value, row and column

Currently, some basic operations are quite a bit more difficult than they could be. An example: to check if a matrix is composed of Integer:

# Currently, need to build an intermediate array
m = Matrix[...]
integral = m.row_vectors.all? do |row|
  row.all? &:integer?
end
# Could be
integral = m.all? &:integer?


I'll gladly provide precisions on each method and make a patch.

Associated revisions

Revision 27158
Added by Marc-Andre Lafortune almost 2 years ago

* lib/matrix.rb: New methods Matrix#each, #each_with_index, and include Enumerable [ruby-core:28400]

History

Updated by Marc-Andre Lafortune almost 2 years ago

  • Assignee changed from Keiju Ishitsuka to Marc-Andre Lafortune

Updated by Marc-Andre Lafortune almost 2 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100
This issue was solved with changeset r27158.
Marc-Andre, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

Also available in: Atom PDF