  We introduce a novel scheme of quantum recursive programming, in which large
unitary transformations, i.e. quantum gates, can be recursively defined using
quantum case statements, which are quantum counterparts of conditionals and
case statements extensively used in classical programming. A simple programming
language for supporting this kind of quantum recursion is defined, and its
semantics is formally described. A series of examples are presented to show
that some quantum algorithms can be elegantly written as quantum recursive
programs.
