quipper-demos-0.9.0.0: Quipper/Demos/DynamicLifting.hs
-- Test the dynamic lifting feature.
import Quipper
-- | A circuit in which some future gates depend on a prior measurement.
circuit :: Qubit -> Qubit -> Circ Qubit
circuit a b = do
qnot_at a `controlled` b
m <- measure a
bool <- dynamic_lift m
if bool == 0 then
do
hadamard_at b
return b
else
do
c <- qinit False
qnot_at c `controlled` b
qdiscard b
return c
main = do
print_simple ASCII circuit