Understanding, Recursion in Ruby -


in recursion, method calls itself. i'm not following when there return values. example, in "learn program" book chris pine, there example on factorials.

def factorial num    if num < 0     return 'you cant\'t take factorial of negative number!'   end   if num <= 1     1   else      num * factorial(num-1)   end end  

if call method factorial(3), go else portion of code , this:

3 * factorial(3-1) 

and should return 6 since 3*2=6. factorial(3-1) calls factorial method passing 2 within recursion. num = 2, , 2 * factorial(2-1) , 2*1=2.

what happens 6 got our first run through code? num = 1, looks return 1 , go end of code. understanding, still have 6 , 2 previous recursions. correct in assumption, since called factorial function when multiplied num? can me understand better? called factorial(10), how work out?

first, should replace return 'blabla' raise 'blabla' because function returns numeric, not string.

then see this

factorial(3)   3 * factorial(2)         2 * factorial(1)               1  # no more recursion, let's go replacing                   # function calls returned value             end       end end # ↓ factorial(3)   3 * factorial(2)         2 * 1  # let's go again !       end end # ↓ factorial(3)   3 * 2 # end # ↓ 6 

Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -