Mutual recursion: Difference between revisions

Content added Content deleted
(Added XPL0 example)
m (→‎with memoization: added a comment. -- ~~~~)
Line 1,651: Line 1,651:
say 'Fs=' Fs
say 'Fs=' Fs
say 'Ms=' Ms
say 'Ms=' Ms
exit /*stick a fork in it, we're done.*/
exit
/*─────────────────────────────────────F, M, Jw subroutines────────────*/
/*─────────────────────────────────────F, M, Jw subroutines────────────*/
F: procedure expose hm. hf.; arg n; if hf.n=='' then hf.n=n-M(F(n-1)); return hf.n
F: procedure expose hm. hf.; arg n; if hf.n=='' then hf.n=n-M(F(n-1)); return hf.n
Line 1,662: Line 1,662:
Ms= 0 0 1 2 2 3 4 4 5 6 6 7 7 8 9 9 10 11 11 12 12 13 14 14 15 16 16 17 17 18 19 19 20 20 21 22 22 23 24 24 25 25 26 27 27 28 29 29 30 30 31 32 32 33 33 34 35 35 36 37 37 38 38 39 40 40 41 42 42 43 43 44 45 45 46 46 47 48 48 49 50 50 51 51 52 53 53 54 54 55 56 56 57 58 58 59 59 60 61 61
Ms= 0 0 1 2 2 3 4 4 5 6 6 7 7 8 9 9 10 11 11 12 12 13 14 14 15 16 16 17 17 18 19 19 20 20 21 22 22 23 24 24 25 25 26 27 27 28 29 29 30 30 31 32 32 33 33 34 35 35 36 37 37 38 38 39 40 40 41 42 42 43 43 44 45 45 46 46 47 48 48 49 50 50 51 51 52 53 53 54 54 55 56 56 57 58 58 59 59 60 61 61
</pre>
</pre>

===with memoization, specific entry===
===with memoization, specific entry===
This version is identical in function to the previous example, but it also can compute and
This version is identical in function to the previous example, but it also can compute and