Không , nhưng không phải vì những lý do mà người khác đưa ra. Sự khác biệt giữa đệ quy và cảm ứng không phải là đệ quy là "từ trên xuống" và cảm ứng là "từ dưới lên". Cảm ứng là đẳng cấu với một cái gì đó gọi là "đệ quy primitve", nhưng nói chung, đệ quy mạnh hơn nhiều so với cảm ứng .
Sự khác biệt giữa từ trên xuống và từ dưới lên là tầm thường - bất kỳ chương trình đệ quy nguyên thủy "từ trên xuống" nào cũng có thể được chuyển đổi một cách cơ học thành một cái gì đó "từ dưới lên". Trong thực tế, bất kỳ bằng chứng nào của quy nạp có thể được biến thành một chương trình đệ quy. Trong khuôn khổ tính toán của các công trình quy nạp, nếu bạn muốn chứng minh rằng mọi số tự nhiên đều là froopious, bạn sẽ viết nó như là một hàm xây dựng một bằng chứng rằng n là froopious bằng cách thực hiện một cuộc gọi đệ quy để xây dựng một bằng chứng rằng 1 là đông cứng.
Yếu tố chính của cảm ứng là mọi thứ được xác định theo nghĩa nhỏ hơn và chúng "chạm đáy" sau nhiều bước chính xác. Các số tự nhiên là quy nạp bởi vì mọi tự nhiên là 0 hoặc là sự kế thừa của một số tự nhiên nhỏ hơn. Danh sách là quy nạp vì mọi danh sách đều trống hoặc có thể được chia nhỏ ("mở ra") thành một yếu tố và danh sách nhỏ hơn.
Đôi khi các chương trình đệ quy không được viết theo những điều nhỏ hơn. Ví dụ: lấy chức năng Collatz này:
fun collatz(n)
if n <= 1
return 0;
else if n % 2 == 0
return 1 + collatz(n / 2)
else
return 1 + collatz(3 * n + 1)
end
Hàm này không đi từ trên xuống hay từ dưới lên, và do đó không được quy nạp theo số tự nhiên.
Có thể có một mệnh lệnh để điều trị theo cách tự cảm, nhưng đối với hầu hết mọi thứ đơn giản là không có cách nào. Các hàm trên các luồng vô hạn là một ví dụ tuyệt vời. Trong thực tế, các luồng là ví dụ mẫu của loại "cưỡng chế".
"Cơ sở thực tiễn cho ngôn ngữ lập trình" của Bob Harper, có sẵn trực tuyến miễn phí, có phần giới thiệu hay về các loại quy nạp, cưỡng chế và đệ quy.