Recursion ialah apabila sesuatu fungsi memanggil dirinya sendiri untuk menyelesaikan versi yang lebih kecil bagi masalah yang sama. Setiap recursion memerlukan base case yang menghentikannya dan recursive case yang bergerak ke arah base case.
Ideanya
Pecahkan sesuatu masalah kepada submasalah lebih kecil yang serupa. Setiap panggilan menolak satu frame ke atas call stack; pulangan (return) mengeluarkannya semula.
Contoh
():
n <= :
n * factorial(n - )
factorial()
