Hi,
In message "[ruby-talk:01046] Equivalent of 'inject'"
on 00/01/03, Dave Thomas <Dave / thomases.com> writes:
|Now I know I'm being stupid, but I can't see a Ruby equivalent of
|operations such as Smalltalk's 'inject'. What's the clean way of (say)
|summing the elements in an array?
If I remember correctly, inject works like this, right?
array.inject(0){|n,x| n+x} # => sum of the array
If so, Ruby does not have equivalent built-in.
n = 0
for x in array
n += x
end
will do the thing you want.
In addition, you can always add the feature you want to Ruby by
yourself. With the following code, inject will be added to all
enumerable objects (Array, Hash, etc.).
module Enumerable
def inject(n)
self.each{|x| n = yield(n, x)}
return n
end
end
Hope this helps
matz.