while output
セクションを除いて、次のコードで発生していることをすべて理解しています。
1 def doUntilFalse firstInput, someProc
2 input = firstInput
3 output = firstInput
4
5 while output
6 input = output
7 output = someProc.call input
8 end
9
10 input
11 end
12
13 buildArrayOfSquares = Proc.new do |array|
14 lastNumber = array.last
15 if lastNumber <= 0
16 false
17 else
18 array.pop # Take off the last number...
19 array.push lastNumber*lastNumber # ...and replace it with its square...
20 array.push lastNumber-1 # ...followed by the next smaller number.
21 end
22 end
23
24 alwaysFalse = Proc.new do |justIgnoreMe|
25 false
26 end
27
28 puts doUntilFalse([5], buildArrayOfSquares).inspect
while
私はほとんどの部分を理解していますが、何らかの理由で、このコードでは木々を通して森を見ることができません。5行目と8行目の間の部分で何が起こっているのか誰かが説明してwhile output
もらえますか?それは非常に単純なことは間違いありませんが、私はそれで壁にぶつかりました。どんな助けでも大歓迎です。