On Mar 23, 2008, at 1:24 PM, Vladimir Sizikov wrote: > In some cases, there is no difference (e.g., for Fixnums, 4 succ's > equivalent to +4). > But in case of, say, Strings, iterating via #succ makes perfect sense, > but it's nonsensical to add 4 to the string. > In other case, Floats and Rationals, there is no sense in #succ, but > increments are perfectly valid and have some valid meaning. Here's how this week's beta of the PickAxes describes it: \begin{method}{step}{\self.step( \obj{n}=1 ) \opt{\blockp{obj}} \returns{\self{} or \obj{enum}}}{A} \newin{1.9}% Iterates over \self, passing each $n^{th}$ element to the block. If the range contains numbers, addition by one is used to generate successive elements. Otherwise \METHOD{step} invokes \METHOD{succ} to iterate through range elements. If no block is given, an enumerator is returned. The following code uses class \C{Xs} defined at the start of this section. This seems to cover the cases. But, I agree. This is a bit of a mess. (As is Enumerable#member?#) Dave