Project

General

Profile

Feature #6852

Updated by nobu (Nobuyoshi Nakada) over 1 year ago

```ruby 
 p = [1, 2, 3] 
 q = [4, 5, 6] 
 [p, q].transpose 
 # => [[1, 4], [2, 5], [3, 6]] 
 ``` 
 As expected, 2 x 3 vector was converted into 3 x 2. 

 ```ruby 
 [p].transpose 
 # => [[1], [2], [3]] 
 ``` 
 As expected, 1 x 3 => 3 x 1. 

 ```ruby 
 [].transpose 
 # => [] 
 ``` 
 Unexpected, 0 x 3 did not become 3 x 0: [[], [], []] 

 In other words, when `[]` [] is the receiver, transpose has no way to know 
 what kind of **2 dimensional** ** 2 dimensional ** object is it - whether 0 x 3, 0 x 4, 0 x 1 
 or perhaps 0 x 0. `#transpose` #transpose should not assume it is 0 x 0. It should raise, 
 or warn, or complain, or require argument for this case, in short, it should 
 behave differently than today.

Back