Xavier Noria
1/28/2007 12:03:00 AM
On Jan 28, 2007, at 12:35 AM, CHubas wrote:
> While playing a little with Ruby, I've been looking for a function
> each_digit, or something similar, and I couldn't find any (standard
> nor library). I think it'd be useful to have a function like that.
> It's pretty simple to implement one for Integers
>
> class Integer
> def each_digit(base = 10, &block)
> return if zero?
> (self/base).each_digit(base, &block)
> yield self % base
> end
> end
>
> A first approach. Of course, it would be a little more complicated for
> negatives and Floats, specially dealing with precision.
Good. I'd expect each_digit to return strings though, since a digit
is a symbol, not a number:
class Integer
def each_digit(base=10)
abs.to_s(base).each_byte do |b|
yield b.chr
end
end
end
-- fxn