Aklımda sadece bir şüphe vardı. Aşağıdaki alt yordamın (örneğin, bir listedeki bir öğeyi aramak için) sonunda bir döndürme ifadesi vardır:
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) );
}
Sonunda dönüş deyiminin önemini alamıyorum (yani arama_listesi (l-> sonraki, x)). Yığın modelini kullanarak herhangi birinin bu kavramı açıklayabilmesi gerçekten yararlı olacaktır.
return. Aslında, işlevsel dillerde (ve Scala gibi bazı karışık diller) return gerekli değildir : özyinelemeli işlevin değeri, son ifadesinin değeridir. Basitçe yazılı search_list(l->next, x)olmadan returnScala çalışmış olurdu! İfadenin anlamı returnsadece zorunlu bir arka plana sahip programcılar için açıktır.
returnbunu yapar.