Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
10
Task/Mutual-recursion/REXX/mutual-recursion-1.rexx
Normal file
10
Task/Mutual-recursion/REXX/mutual-recursion-1.rexx
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/*REXX program shows mutual recursion (via the Hofstadter Male and Female sequences). */
|
||||
parse arg lim .; if lim='' then lim= 40; w= length(lim); pad= left('', 20)
|
||||
|
||||
do j=0 for lim+1; jj= right(j, w); ff= right(F(j), w); mm= right(M(j), w)
|
||||
say pad 'F('jj") =" ff pad 'M('jj") =" mm
|
||||
end /*j*/
|
||||
exit /*stick a fork in it, we're all done. */
|
||||
/*──────────────────────────────────────────────────────────────────────────────────────*/
|
||||
F: procedure; parse arg n; if n==0 then return 1; return n - M( F(n-1) )
|
||||
M: procedure; parse arg n; if n==0 then return 0; return n - F( M(n-1) )
|
||||
14
Task/Mutual-recursion/REXX/mutual-recursion-2.rexx
Normal file
14
Task/Mutual-recursion/REXX/mutual-recursion-2.rexx
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
/*REXX program shows mutual recursion (via the Hofstadter Male and Female sequences). */
|
||||
parse arg lim .; if lim=='' then lim=40 /*assume the default for LIM? */
|
||||
w= length(lim); $m.=.; $m.0= 0; $f.=.; $f.0= 1; Js=; Fs=; Ms=
|
||||
|
||||
do j=0 for lim+1
|
||||
Js= Js right(j, w); Fs= Fs right( F(j), w); Ms= Ms right( M(j), w)
|
||||
end /*j*/
|
||||
say 'Js=' Js /*display the list of Js to the term.*/
|
||||
say 'Fs=' Fs /* " " " " Fs " " " */
|
||||
say 'Ms=' Ms /* " " " " Ms " " " */
|
||||
exit /*stick a fork in it, we're all done. */
|
||||
/*──────────────────────────────────────────────────────────────────────────────────────*/
|
||||
F: procedure expose $m. $f.; parse arg n; if $f.n==. then $f.n= n-M(F(n-1)); return $f.n
|
||||
M: procedure expose $m. $f.; parse arg n; if $m.n==. then $m.n= n-F(M(n-1)); return $m.n
|
||||
18
Task/Mutual-recursion/REXX/mutual-recursion-3.rexx
Normal file
18
Task/Mutual-recursion/REXX/mutual-recursion-3.rexx
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/*REXX program shows mutual recursion (via the Hofstadter Male and Female sequences). */
|
||||
/*───────────────── If LIM is negative, a single result is shown for the abs(lim) entry.*/
|
||||
|
||||
parse arg lim .; if lim=='' then lim= 99; aLim= abs(lim)
|
||||
w= length(aLim); $m.=.; $m.0= 0; $f.=.; $f.0= 1; Js=; Fs=; Ms=
|
||||
|
||||
do j=0 for aLim+1; call F(J); call M(j)
|
||||
if lim<0 then iterate
|
||||
Js= Js right(j, w); Fs= Fs right($f.j, w); Ms= Ms right($m.j, w)
|
||||
end /*j*/
|
||||
|
||||
if lim>0 then say 'Js=' Js; else say 'J('aLim")=" right( aLim, w)
|
||||
if lim>0 then say 'Fs=' Fs; else say 'F('aLim")=" right($f.aLim, w)
|
||||
if lim>0 then say 'Ms=' Ms; else say 'M('aLim")=" right($m.aLIM, w)
|
||||
exit /*stick a fork in it, we're all done. */
|
||||
/*──────────────────────────────────────────────────────────────────────────────────────*/
|
||||
F: procedure expose $m. $f.; parse arg n; if $f.n==. then $f.n= n-M(F(n-1)); return $f.n
|
||||
M: procedure expose $m. $f.; parse arg n; if $m.n==. then $m.n= n-F(M(n-1)); return $m.n
|
||||
Loading…
Add table
Add a link
Reference in a new issue