>   row    = [1, 4, 6, 4, 1]
>   p ([0]+row).zip(row<<0).map{|a,b|a+b}  ===> [1, 5, 10, 10, 5, 1]
>   row    = [1, 4, 6, 4, 1]
>   p row.zip([0]+row).map{|a,b|a+b}+[1]   ===> [1, 5, 10, 10, 5, 1]
> 
> Running your code first mangles the value of "row".  It's not fair if
> you don't give the same value for "row" to my code :)

Sorry...

gegroet,
Erik V.