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 returnaurait fonctionné à Scala! La signification de la returndéclaration n'est évidente que pour les programmeurs ayant une formation impérative.
return.