Ruby parallele Zuordnung, Schritt Frage

Also, ich versuche Ruby zu lernen, indem ich einige Projekt-Euler-Fragen mache, und ich habe ein paar Dinge kennengelernt, die ich nicht erklären kann, und den Komma? -Operator? ist in der Mitte von beiden. Ich habe keine gute Dokumentation dafür finden können, vielleicht benutze ich Google einfach nicht so, wie ich sollte, aber eine gute Ruby-Dokumentation scheint ein wenig spärlich zu sein. . .

1: Wie beschreiben Sie, wie das funktioniert? Das erste Snippet ist der Ruby-Code, den ich nicht verstehe, das zweite ist der Code, den ich geschrieben habe.

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

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

2: Wie beschreiben Sie im folgenden Beispiel, was die Zeile mit 'step' tut? Nach allem, was ich sammeln kann, funktioniert der Befehl step wie (range) .step (step_size), aber dies scheint zu tun (starting_point) .step (ending_point, step_size). Habe ich Recht mit dieser Annahme? Wo finde ich gute doc davon?

#/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(", ")

Antworten auf die Frage(2)

Ihre Antwort auf die Frage