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 return
làm việc trong Scala! Ý nghĩa của return
tuyê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.
return
làm.