Recursion, and how it eats the stack
By the end of today you can write a correct recursive function by identifying its base case and its shrinking step, trace its frames on paper, and say honestly when iteration would have been the better choice.
YesterdayOn Day 17 you learned that every call pushes a frame onto the stack. Recursion is a function pushing frames of itself.
TomorrowTomorrow you use recursion on sorted data, where halving the search space each step gives you logarithmic cost.
Why this matters
Recursion is the natural way to work with anything nested: file trees, JSON, the DOM, and the trees you meet tomorrow. It is also where beginners most often write something that looks right and blows the stack.
- Recursion
- Base cases
- Recursion depth
- Recursion or iteration
Learn it
75 minCopy this into Claude or ChatGPT. It quizzes you before it explains anything, which is deliberate. The resources under it are how you check what it told you.
Today's Master Prompt
Free · sign inA prompt written for this day alone: your level, the exact scope, what to leave out, and an instruction to quiz you before it explains anything. Paste it into Claude or ChatGPT and it teaches you today's material.
Check it against something that is not a model
An assistant can be fluent and wrong, and on a topic you met today you will not catch it. These cover the same ground and were made by people who do this for a living, so they are what you hold the explanation up against. They are other people's work and we only link to them, so judge them for yourself.
4 hand-picked resources
Free · sign inVideos, official docs and articles covering the same ground, each opened and annotated by hand. They are what you check the assistant against on a day you cannot yet catch it being wrong.
Build it
45 minWrite a recursive function that sums every number in an arbitrarily nested list. Then write naive recursive Fibonacci, time fib(30), add functools.cache, and time it again. Finally, write a function that walks a real directory tree and reports the total size of every file below a path.
Recall it
20 minAnswer out loud, reveal, then mark honestly whether you had it. That score is the only thing on this page you do not get to choose.
5 recall questions
Free · sign inQuestions you answer from memory, then grade yourself against the real answer. The score is carried into the mastery rating below it, so an honest miss cannot quietly become a tick.
Rate it
Completion and mastery are tracked separately. Be honest, because an inflated rating only means the concept resurfaces sooner.
Mastery tracking
Free · sign inRate yourself against five named criteria per concept. Completion and mastery are tracked separately, and anything you rate shakily comes back automatically on a spaced schedule.
Recap
- 01Every recursive function needs a base case and genuine progress toward it
- 02Frames stack up and nothing returns until the base case is reached
- 03Repeated subproblems make naive recursion exponential; caching fixes it
- 04Nested data is where recursion genuinely beats iteration
Your progress
Free · sign inMark days complete, pick up where you left off across devices, and watch completion and mastery diverge. Free, and the account exists only so ninety days of work cannot vanish with a cleared browser.