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.
returnterjadi. 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 returnakan berhasil di Scala! Arti returnpernyataan itu hanya jelas bagi programmer dengan latar belakang imperatif.
returndilakukan.