你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
串联在量子计算中很常见。 在数学方面,它们是 U U†VU 形式的模式,用于两个单一转换 U 和 V。由于量子内存的特殊性,该模式相关:计算会构建量子相关性,或 纠缠,以使用量子的唯一资产。 但是,这也意味着,一旦子例程不再需要其量子比特,这些量子比特就不容易重置和释放,因为观察它们的状态会影响系统的其余部分。 因此,在释放和重用量子内存之前,通常需要反向计算的影响。
因此,Q# 具有一个专用构造来表示需要此类清理的计算。 表达式由两个代码块组成,一个代码块包含 U 的实现,一个代码块包含 V的实现。无计算(即,U†)作为表达式的一部分自动完成。
表达式采用窗体
within {
<statements>
}
apply {
<statements>
}
其中,<statements> 替换为定义分别实现 U 和 V 的任意数量的语句。
除了自动生成适用于 within 块的相邻版本,这两个块可能包含任意经典计算。 用作 within 块一部分的可变绑定变量可能不会作为 apply 块的一部分重新分配。