Saya hanya memiliki keraguan dalam pikiran saya. Subrutin berikut (untuk mencari elemen, dalam daftar, misalnya) memiliki pernyataan kembali di akhir:
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) );
}
Saya tidak bisa mendapatkan signifikansi pernyataan pengembalian di akhir (yaitu mengembalikan search_list (l-> selanjutnya, x)). Akan sangat membantu jika ada yang bisa menjelaskan konsep ini, menggunakan model stack.
return
terjadi. Bahkan, dalam bahasa fungsional (dan beberapa yang campuran, seperti Scala) return
tidak diperlukan : nilai fungsi rekursif adalah nilai ekspresi terakhirnya. Cukup menulis search_list(l->next, x)
tanpa return
akan berhasil di Scala! Arti return
pernyataan itu hanya jelas bagi programmer dengan latar belakang imperatif.
return
dilakukan.