On 19 Dec 2008, at 06:59, Jordan Theous wrote:
>
> hey all,
>
> this is a great community and I''m glad I found it...also, this is
my
> first post.
>
> In the code example below taken from Chris Pine Learn to Program RoR
> book, I''m curious why there is (what looks like to me) a hanging
> variable: "size". It is the third line from the bottom. I
understand
> how recursion is working here, but I''m not sure why
"size" is just
> sitting there at the bottom. I removed the line and re-ran the
> program
> and still got the correct result. Am I missing something?
>
The return value of method in ruby is the result of the last statement
(or whatever you pass to return)
Sticking size at the bottom of that method makes that the result. If
you remove that then the return value will be the previous statement
ie size = size + continent_size(world, x+1, y+1)
which will generate the same return value, however the intention is
not perhaps as explicit as if you have size on its own at the end of
the method.
Fred> --
>
> M = '' land ''
> o = '' water ''
> world = [[o,o,o,o,o,o,o,o,o,o,o],
> [o,o,o,o,M,M,o,o,o,o,o],
> [o,o,o,o,o,o,o,o,M,M,M],
> [o,o,o,M,o,o,o,o,o,M,o],
> [o,o,o,M,o,M,M,o,o,o,o],
> [o,o,o,o,M,M,M,M,o,o,o],
> [o,o,o,M,M,M,M,M,M,M,o],
> [o,o,o,M,M,o,M,M,M,o,o],
> [o,o,o,o,o,o,M,M,o,o,o],
> [M,M,o,o,o,M,o,o,o,o,o],
> [o,o,o,o,o,o,o,o,o,o,o]]
>
> def continent_size world, x, y
> if x > 10 && y > 10
> size = 0
> else
> if world[y][x] != '' land ''
> return 0
> end
> end
>
> size = 1
> world[y][x] = '' counted land ''
>
> size = size + continent_size(world, x-1, y-1)
> size = size + continent_size(world, x , y-1)
> size = size + continent_size(world, x+1, y-1)
> size = size + continent_size(world, x-1, y )
> size = size + continent_size(world, x+1, y )
> size = size + continent_size(world, x-1, y+1)
> size = size + continent_size(world, x , y+1)
> size = size + continent_size(world, x+1, y+1)
> size
> #THIS LAST "SIZE" IS WHAT I''M TALKING ABOUT ABOVE. YOU
CAN REMOVE IT
> AND THE #PROG STILL RUNS CORRECTLY
>
> end
>
> puts continent_size(world, 5, 5)
> --
>
> Thanks in advance for any thoughts you have.
>
> Best,
> Jordan
> --
> Posted via http://www.ruby-forum.com/.
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---