J'avais juste un doute dans ma tête. Le sous-programme suivant (pour rechercher un élément, dans une liste, par exemple) a une instruction return à la fin:
list *search_list(list *l, item_type x) {
if (l == NULL) return(NULL);
if (l->item == x)
return(l);
else
return( search_list(l->next, x) );
}
Je ne peux pas obtenir la signification de l'instruction de retour à la fin (c'est-à-dire retourner la liste de recherche (l-> suivant, x)). Il serait vraiment utile que quelqu'un puisse expliquer ce concept en utilisant un modèle de pile.
return
. En fait, dans les langages fonctionnels (et certains mixtes, comme Scala) return
n'est pas nécessaire : la valeur de la fonction récursive est la valeur de sa dernière expression. Écrire simplement search_list(l->next, x)
sans return
aurait fonctionné à Scala! La signification de la return
déclaration n'est évidente que pour les programmeurs ayant une formation impérative.
return
.