  Quantum algorithms are sequences of abstract operations, performed on
non-existent computers. They are in obvious need of categorical semantics. We
present some steps in this direction, following earlier contributions of
Abramsky, Coecke and Selinger. In particular, we analyze function abstraction
in quantum computation, which turns out to characterize its classical
interfaces. Some quantum algorithms provide feasible solutions of important
hard problems, such as factoring and discrete log (which are the building
blocks of modern cryptography). It is of a great practical interest to
precisely characterize the computational resources needed to execute such
quantum algorithms. There are many ideas how to build a quantum computer. Can
we prove some necessary conditions? Categorical semantics help with such
questions. We show how to implement an important family of quantum algorithms
using just abelian groups and relations.
