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 return
Scala çalışmış olurdu! İfadenin anlamı return
sadece zorunlu bir arka plana sahip programcılar için açıktır.
return
bunu yapar.