Il devrait être question fondamentale sur la récursivité.comment le traitement de récursivité sous le capot
Code simple:
func fact(n int) int {
if n == 0 {
return 1
}
return n * fact(n-1)
}
comment la ligne n * fact(n-1)
sera le traitement sous le capot par les langages de programmation généraux, C++, Java, Go ...
Dans ma compréhension de la ligne n * fact(n-1)
va créer l'expression à la volée comme n * n-1 * n-2. ...
Ainsi, le programme exécutable préparera l'expression selon le paramètre fonctionnel entrant. Aussi comment va traiter la récurrence simple et la récursion de la queue sous le capot. Pourriez-vous ajouter plus de détails, des documents utiles.
Merci.
Il ne s'agit pas d'une queue récursive. La dernière opération est n * fait résultat –