末尾再帰(まつびさいき、tail recursive)とは、再帰のうち、関数の末尾にのみ再帰を記述するプログラミングのテクニックである。
そんな小難しく面倒なことをして何が嬉しいかというと、賢いコンパイラだと、最適化時に末尾再帰を検出すると、自動的に再帰ではなくしてくれる。これを末尾再帰最適化という。