Trong lập trình hàm, điều quan trọng là tối ưu hóa bất kỳ mã "lặp" nào là đuôi đệ quy. Các thuật toán đệ quy đuôi thường được phân chia giữa hai hàm, tuy nhiên - một thuật toán thiết lập vỏ cơ sở và một thuật toán khác thực hiện vòng lặp thực tế. Một ví dụ tốt (mặc dù học tập) sẽ là chức năng ngược lại.Quy ước đặt tên của bạn cho các chức năng trợ giúp là gì?
reverse :: [a] -> [a]
reverse = reverse_helper []
reverse_helper :: [a] -> [a] -> [a]
reverse_helper result [] = result
reverse_helper result (x:xs) = reverse_helper (x:result) xs
"reverse_helper" thực sự không phải là tên mô tả hay. Tuy nhiên, "reverse_recursive_part" chỉ là khó xử.
Quy ước đặt tên nào bạn sẽ sử dụng cho các chức năng trợ giúp như thế này?
Ngôn ngữ đó là gì? –
Tôi xin lỗi. Tôi đang làm việc trên một dự án Haskell ngay bây giờ, trong đó lấy cảm hứng từ câu hỏi này. Tôi có thể đã đưa ra một ví dụ Python/Java tôi giả sử, mặc dù các hàm trợ giúp như vậy không hữu ích trong các ngôn ngữ mệnh lệnh. – Cybis