
On 3/28/2014 6:14 PM, Brandon Allbery wrote:
On Fri, Mar 28, 2014 at 7:10 PM, John M. Dlugosz
mailto:ngnr63q02@sneakemail.com> wrote: Each recursive call is either 1 or (n-1) so it should count down 5,4,3,2,1 and stop the recursion.
What am I missing?
It doesn't magically stop at 0; Integer (inferred type) is signed. Moreover, even if it were not signed, it would wrap around (or possibly throw an exception on some CPUs, but not on Intel). You need to include a check for 0 to stop the recursion.
I don't get it. When n == 1 it should match the second form, and that is not recursive. Ah, they are matched in order! (Yes, it works if I reverse the clauses) Hmm, so it figures out the type from all of them? I worried about putting specialized ones first because there is far less information.