# Recursion Practice

> ML preparation set.

- Stable ID: `recursion-practice`
- Area: programming
- Kind: practice
- Timebox: 45 minutes

Practice base cases, call traces, and recursive decomposition.

## Instructions

1. Write the base case before the recursive step.
2. Trace one nontrivial input by hand.

## Ordered items

1. [Recursive power finger exercise](https://mlprep.iwase.dev/programming/recursion/mit-6-100l-finger-15/) — `mit-6-100l-finger-15` (7 min)
2. [Recursive binary search](https://mlprep.iwase.dev/programming/recursion/original-py-binary-search/) — `original-py-binary-search` (10 min)
3. [Recursively flatten nested lists](https://mlprep.iwase.dev/programming/recursion/original-py-flatten/) — `original-py-flatten` (9 min)
4. [Recursive flattening finger exercise](https://mlprep.iwase.dev/programming/recursion/mit-6-100l-finger-16/) — `mit-6-100l-finger-16` (10 min)

## Completion

Implement each recursive function without slicing or hidden global state.
