量子計算中常見的結合。 在數學方面,它們是U U†VU 兩個單位轉換的模式,U 和 V。該模式因量子記憶體的特殊性而相關:計算會建立量子相互關聯,或 糾纏,以使用量子的唯一資產。 不過,這也表示一旦子程式不再需要其量子位,這些量子位就無法輕易重設並釋放,因為觀察其狀態會影響系統的其餘部分。 因此,在釋放和重複使用量子記憶體之前,通常需要反轉先前計算的效果。
Q# 因此有一個專用的建構來表示需要這類清除的計算。 表達式包含兩個程式代碼區塊,一個包含 U 實作,另一個包含 V實作。未計算(也就是 U†的应用程序)會自動在表達式中完成。
表達式採用表單
within {
<statements>
}
apply {
<statements>
}
其中,<statements> 會分別取代為定義實作 U 和 V 的任意數目語句。
除了自動產生套用至 within 區塊的相鄰版本,這兩個區塊可能包含任意的傳統計算。 作為 within 區塊一部分的可變繫結變數可能不會重新指派為 apply 區塊的一部分。