Feature #2771
Matrix: constructor to build with block
| Status: | Closed | Start date: | 02/21/2010 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 100% |
||
| Category: | lib | |||
| Target version: | 1.9.2 |
Description
I believe the following simple constructor could be a helpful addition to matrix.rb
class Matrix
#
# Creates a matrix of +row_size+ x +column_size+.
# It fills the values by calling the given block,
# passing the current row and column.
#
# m = Matrix.build(2, 4) {|row, col| col - row }
# => Matrix[[0, 1, 2, 3], [-1, 0, 1, 2]]
# m = Matrix.build(3) { rand }
# => a 3x3 matrix with random elements
#
def self.build(row_size, column_size = row_size)
raise ArgumentError if row_size < 0 || column_size < 0
return to_enum :build, row_size, column_size unless block_given?
rows = row_size.times.map do |i|
column_size.times.map do |j|
yield i, j
end
end
new rows, column_size
end
end
Associated revisions
* lib/matrix.rb: New method Matrix.build [ruby-core:28272]
History
Updated by Keiju Ishitsuka almost 2 years ago
Hi, Marc-André Please commit it.
Updated by Marc-Andre Lafortune almost 2 years ago
- Status changed from Open to Assigned
- Assignee changed from Keiju Ishitsuka to Marc-Andre Lafortune
Updated by Marc-Andre Lafortune almost 2 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r27315. Marc-Andre, thank you for reporting this issue. Your contribution to Ruby is greatly appreciated. May Ruby be with you.