hakeの日記

Windows環境でプログラミングの勉強をしています。

injectが意味不明

ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]
--------------

a= [1,2,3,4,5]
p a.inject(0){|a,b| a += b}  #=> 15
p a                          #=> 15

b = [1,2,3,4,5]
p b.inject(0){|a,b| a += b}  #=> 15
p b                          #=> 5

x = [1,2,3,4,5]
p x.inject(0){|a,b| a += b}  #=> 15
p x                          #=> [1,2,3,4,5]

なんでブロックの中のaやbがブロックの外のaやbに影響を与えるのでしょう???