rashworth wrote:
># The following code does not Sum the squares of the elements.
># Define class Array for Sum of squares
>class Array
>  def inject(n)
>    each { |value| n = yield(n, value) }
>    n
>  def sumsq
>    inject(0) { | n, value | (n * n) + value }
>  end
>end
>
>[ 1, 2 ].sumsq          # 1 + 4 = 5
>[ 1, 1, 0, 1 ].sumsq    # 1 + 1 + 0 + 1 = 3
># Can you tell me what the correct code should be?

Having never gotten used to the "inject" concept, 
I would simply write:

class Array
	def sumsq
		result = 0
		each { | n | result += (n*n) }
		result
	end
end

p [1,2].sumsq
p [1,1,0,1].sumsq

Kevin