From: "王谦" Date: 2007-01-25T22:40:13+09:00 Subject: some small suggestions to Array I'm a new user of ruby from China. I love it very much. And I believe it will become better and better in future. During the study of ruby these days, I have some small suggestions to ruby. The suggestions are about the array object, I think we may provide a much much more flexible way to refer the elements from an array. Suppose we have an array object [1,2,3,4,5], named "a". 1.Now we have: a[from, len], The first parameter means the result will start with a[from], and length is len. Then what about a[2,-3]? I think a negative second parameter should means an reversed array, that is, a[2,-3] shoule be [3,2,1]. Additionally, we may introduce a more flexible way to express the "end with". maybe like this: a[..2, 3] (means end with a[2], length is 3, normal direction). here "..2" means end with a[2], and obviously we should let "2.." means "start with". Some examples: a[2.., 3] == a[2,3] -> [3,4,5] a[2.., -3] == a[2,-3] -> [3,2,1] a[..2, 3] -> [1,2,3] a[..2, 3] -> [5,4,3] 2.Now we have: a[2..3] and a[2...3] to discribe a closed interval and a semi-open interval. I think we should provide an easy way to discrible any kinds of interval, may be like this: 2..4 means 2,3,4 [2..4) means 2,3 (2..4] means 3,4 (2..4) means 3 the way above may be not beautiful enough, but the function is required i guess. Moreover, I guess a[3..1] should means [4,3,2]. it is just the semantic of "from..to" 3.Some much more ideas: a[i if odd?(i)] should be [2,4] a[[1,3,3,4]] should be [2,4,4,5] a[[1,3..4]] should be [2,4,5] a[:]{|a[i]|, odd?(a[i])} should be [1,3,5], the block works as a filter of the result. And what about the combination of all above? (Some ideas come from the grammar of matlab. Its array's interface is great.)