Hi there,
I wanted to add a "bang" method to the Array class:
class Array
def smooth!
n = self.size
res = Array.new
(1..n-2).each { |i|
res[i] = (self[i-1] + 2.0 * self[i] + ...
}
#self.each_index { |i| self[i] = res[i] }
self = res
end
end
The line "self = res" gives an error
smooth:17: Can't change the value of self
self = res
So I resorted to the line which is commented out in the code above.
But, why is it forbidden to assign to self? I think that assigning to
self and throwing away the object originally referenced by self is
more efficient than modifying the object referenced by self and
throwing away the one referenced by "res". Am I missing something?
Cheers,
Ryo