The quantum IO monad. (English) Zbl 1209.68103
Gay, Simon (ed.) et al., Semantic techniques in quantum computation. Cambridge: Cambridge University Press (ISBN 978-0-521-51374-6/hbk). 173-205 (2010).
Summary: The quantum IO monad is a purely functional interface to quantum programming implemented as a Haskell library. At the same time it provides a constructive semantics of quantum programming. The QIO monad separates reversible (i.e., unitary) and irreversible (i.e., probabilistic) computations and provides a reversible let operation (ulet), allowing us to use ancillas (auxiliary qubits) in a modular fashion. QIO programs can be simulated either by calculating a probability distribution or by embedding it into the IO monad using the random number generator. As an example we present a complete implementation of Shor’s algorithm.
For the entire collection see [Zbl 1185.68009].
For the entire collection see [Zbl 1185.68009].
MSC:
68N18 | Functional programming and lambda calculus |
68Q05 | Models of computation (Turing machines, etc.) (MSC2010) |
68Q10 | Modes of computation (nondeterministic, parallel, interactive, probabilistic, etc.) |
81P68 | Quantum computation |