Tôi chỉ có một nghi ngờ trong tâm trí của tôi. Chương trình con sau đây (để tìm kiếm một phần tử, ví dụ trong danh sách) có câu lệnh return ở cuối:
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) );
}
Tôi không thể nhận được tầm quan trọng của câu lệnh return ở cuối (tức là return search_list (l-> next, x)). Nó sẽ thực sự hữu ích nếu bất cứ ai có thể giải thích khái niệm này, sử dụng mô hình ngăn xếp.
return. Trong thực tế, trong các ngôn ngữ chức năng (và một số ngôn ngữ hỗn hợp, như Scala) return là không cần thiết : giá trị của hàm đệ quy là giá trị của biểu thức cuối cùng của nó. Đơn giản chỉ cần viết search_list(l->next, x)mà không returnlàm việc trong Scala! Ý nghĩa của returntuyên bố chỉ rõ ràng đối với các lập trình viên với một nền tảng bắt buộc.
returnlàm.