En fait, de façon générale, on peut toujours transformer un code recursif en un code impératif.
Tu es vraiment sûr ? On m'a souvent dit que beaucoup de récursive non terminal était impossible à transformer en impératif.
Si tu as la recette magique, tu nous intéresse ! :-)
Tu le traduit comment impératif ça ? int tak(int x, int y, int z) {
if (y < x) {
return tak(tak(x - 1, y, z), tak(y - 1, z, x), tak(z - 1, x, y));
}
return z;
}
Certains langages le détectent et optimisent tout seuls.
Le compilateur Lisaac par exemple :)
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: sonntag
Posté par Ontologia (site web personnel) . En réponse à la dépêche Lisaac 0.12 en GPL v3. Évalué à 2.
Tu es vraiment sûr ? On m'a souvent dit que beaucoup de récursive non terminal était impossible à transformer en impératif.
Si tu as la recette magique, tu nous intéresse ! :-)
Tu le traduit comment impératif ça ?
int tak(int x, int y, int z) {
if (y < x) {
return tak(tak(x - 1, y, z), tak(y - 1, z, x), tak(z - 1, x, y));
}
return z;
}
Certains langages le détectent et optimisent tout seuls.
Le compilateur Lisaac par exemple :)
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker