R Function Recursion

R Function Recursion (Beginner → Advanced)
Recursion in R means a function calls itself to solve a problem by breaking it into smaller sub-problems.
It is commonly used in mathematics, algorithms, tree structures, and problem solving.
What is Recursion?
A recursive function is a function that calls itself until a specific condition is met.
Every recursive function has two parts:
Base case → stops recursion
Recursive case → function calls itself
Why Use Recursion?
- Solves complex problems easily
- Cleaner logic for repetitive tasks
- Used in factorial, Fibonacci, tree traversal
Warning: May use more memory than loops
Basic Recursion Example (Factorial)
Factorial Formula
R Code
Output
How Recursion Works (Step-by-Step)
Calling:
Execution:
Stops at base case → results return back up the stack.
Fibonacci Series Using Recursion
Fibonacci Formula
R Code
Output
Recursion with User Input
Output
Infinite Recursion (Common Mistake)
- No base case
- Causes stack overflow error
Recursion vs Loop
| Feature | Recursion | Loop |
|---|---|---|
| Code clarity | High | Medium |
| Memory usage | More | Less |
| Speed | Slower | Faster |
| Risk | Stack overflow | Low |
- Use recursion for conceptual clarity
- Use loops for performance
Tail Recursion (Advanced)
Tail recursion means the recursive call is the last operation.
- More efficient
- R does not fully optimize tail recursion
When to Avoid Recursion
Very large inputs
Performance-critical code
Simple repetitive tasks (use loops)
Common Mistakes
- Missing base case
- Wrong stopping condition
- Infinite recursion
- Using recursion when loop is simpler
Interview / Exam Questions
What is recursion in R?
What is a base case?
Write factorial using recursion.
Difference between recursion and loop?
What happens if base case is missing?
What is tail recursion?
Real-Life Use Cases
Mathematical computations
Tree & hierarchical data
Divide-and-conquer algorithms
Parsing expressions
Data structures
Summary
- Recursion = function calling itself
- Always needs a base case
- Useful for factorial, Fibonacci, trees
- Risk of stack overflow
- Loops are faster, recursion is clearer
- Important for exams & interviews

