1) Cet algorithme de calcul de la suite de Fibonacci est le pire qui soit !
2) Comme on vient de le faire remarquer, on ne peut passer que le dernier calcul effectué comme pseudo-argument à un programme Basic-z80. Par conséquent, il est impossible de faire de la récursivité à plusieurs prédécesseurs et très difficile de faire de la récursivité tout court car toutes les variables sont globales !
3) En revanche, il est tout-à-fait possible de faire de la récursivité classique, voire de la récursivité croisée, comme le prouvent les programmes suivants :
- Code: Tout sélectionner
PROGRAM:PAIR
Disp "PAIR
If Ans=0
Then
1
Else
Ans-1
prgmIMPAIR
End
qui va de paire avec :
- Code: Tout sélectionner
PROGRAM:IMPAIR
Disp "IMPAIR
If Ans=0
Then
0
Else
Ans-1
prgmPAIR
End
Ce couple de programmes affiche en dernier le mot correspondant à la parité de n=Ans au moment de l'appel.
De plus, après l'appel, Ans vaut 0 ou 1 suivant la parité de n (1 pour pair et 0 pour impair).
On peut même réussir à faire la factorielle en trichant un peu
- Code: Tout sélectionner
PROGRAM:FACTO
If Ans=0
Then
prod(L1→A
{1→L1
A
Else
Ans→L1(1+dim(L1
Ans-1
prgmFACTO
End
Il suffit alors d'initialiser la première fois avec
{1→L1
puis de taper
11:prgmFACTO:Ans
pour avoir la factorielle de 11.