параллельное задание ruby, вопрос-шаг

Итак, я пытаюсь выучить ruby, задавая вопросы по проекту Эйлера, и столкнулся с парой вещей, которые я не могу объяснить, и оператор запятой? находится в середине обоих. Я не смог найти хорошую документацию для этого, может быть, я просто не использую Google, как я должен, но хорошая рубиновая документация кажется немного разреженной. , ,

1: как вы описываете, как это работает? первый фрагмент - это код ruby, который я не понимаю, второй - код, который я написал, который делает то же самое только после тщательного отслеживания первого:

#what is this doing?
cur, nxt = nxt, cur + nxt

#this, apparently, but how to describe the above?
nxt = cur + nxt   
cur = nxt - cur   

2: как в следующем примере описать, что делает строка с 'step'? из того, что я могу собрать, команда шага работает как (range) .step (step_size), но это, кажется, делает (начальная точка) .step (конечная точка, step_size). Я прав с этим предположением? где я могу найти хороший документ об этом?

#/usr/share/doc/ruby1.9.1-examples/examples/sieve.rb  
# sieve of Eratosthenes
max = Integer(ARGV.shift || 100)
sieve = []
for i in 2 .. max
  sieve[i] = i
end

for i in 2 .. Math.sqrt(max)
  next unless sieve[i]
  (i*i).step(max, i) do |j|
    sieve[j] = nil
  end
end
puts sieve.compact.join(", ")

Ответы на вопрос(2)

Ваш ответ на вопрос