Error in xoring elements

Hey guys,
I am having an issue in working on ruby arrays.
Firstly suppose i have a = [1,2,3] and b [4,5,6] and c=[]
i get an error for this code:-
for i in 0…2
c[i] = a[i]*b[i]
end

saying []= cant be applied to fixnum
Anyways ultimately i solved this error using the << operator
However now i am getting an error :undefined method `^’ for [1]:Array
when i apply
for i in 0…2
c << a[i] ^ b[i]
end
i.e. i am trying to xor values of two arrays and store in a third array
Why the issue and if there is anyway of solving with the first method
itself
Thanks a lot guys
buzz

On Sun, Jun 23, 2013 at 9:45 PM, buzz k. [email protected] wrote:

Hey guys,
I am having an issue in working on ruby arrays.
Firstly suppose i have a = [1,2,3] and b [4,5,6] and c=[]

Did you mean

b = [4,5,6]

i get an error for this code:-
for i in 0…2
c[i] = a[i]*b[i]
end

saying []= cant be applied to fixnum

Certainly not

irb(main):006:0> a = [1,2,3]
=> [1, 2, 3]
irb(main):007:0> b = [4,5,6]
=> [4, 5, 6]
irb(main):008:0> c = []
=> []
irb(main):009:0> for i in 0…2; c[i] = a[i] * b[i] end
=> 0…2
irb(main):010:0> c
=> [4, 10, 18]

Btw, you can also do

irb(main):012:0> c = a.zip(b).map {|x,y| x * y}
=> [4, 10, 18]

Anyways ultimately i solved this error using the << operator

However now i am getting an error :undefined method `^’ for [1]:Array
when i apply
for i in 0…2
c << a[i] ^ b[i]
end
i.e. i am trying to xor values of two arrays and store in a third array
Why the issue and if there is anyway of solving with the first method
itself

Precedence

irb(main):013:0> c << a[1] ^ b[1]
NoMethodError: undefined method ^' for [4, 10, 18, 2]:Array from (irb):13 from /usr/bin/irb:12:in
irb(main):014:0> c << (a[1] ^ b[1])
=> [4, 10, 18, 2, 7]

Cheers

robert

Thanks a lot, its working !