Mental Model
Recursion solves a problem by breaking it into smaller versions of itself until it reaches a simple case.
Analogy: Like peeling an onion layer by layer until you reach the core, recursion processes arrays or strings one element at a time until nothing is left.
array: [a, b, c, d, e] string: "abcde" Recursion call stack: call 1 -> process 'a' + call 2 call 2 -> process 'b' + call 3 call 3 -> ... until base case
