それで、私はいくつかのプロジェクト オイラーの質問をして Ruby を学ぼうとしていますが、説明できないいくつかのことに出くわしました。両方の中間です。これに関する適切なドキュメントを見つけることができませんでした。Google を適切に使用していないだけかもしれませんが、適切な Ruby ドキュメントは少しまばらなようです。. .
1: これがどのように機能しているかをどのように説明しますか? 最初のスニペットは私が理解できない ruby コードです。2 番目のスニペットは私が書いたコードで、最初のスニペットを苦労してトレースした後にのみ同じことを行います。
#what is this doing?
cur, nxt = nxt, cur + nxt
#this, apparently, but how to describe the above?
nxt = cur + nxt
cur = nxt - cur
2: 次の例で、「ステップ」を含む行が何をしているのかをどのように説明しますか? 私が収集できるものから、ステップコマンドは (range).step(step_size) のように機能しますが、これは (starting_point).step(ending_point, 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(", ")