完整名稱:Std.Diagnostics.StartCountingOperation
operation StartCountingOperation<'In, 'Out>(callable : ('In => 'Out)) : Unit
總結
開始計算呼叫指定作業的次數。 如果作業已經計算完成,就會失敗。
描述
此作業可讓您計算呼叫指定作業的次數。 如果指定的作業已經計算完成,再次呼叫 StartCountingOperation 將會觸發運行時間失敗。 計數是以叫用作業的特定特製化為基礎,因此會個別計算 X 和 Adjoint X。
同樣地,Controlled X、CNOT和 CX 是個別計算的獨立作業,如同 Controlled X 和 Controlled Adjoint X。
輸入
調用
要計算的作業。
言論
計算作業呼叫需要以輸入方式傳遞的作業中特別小心。 例如,StartCountingOperation(H) 只會計算呼叫 H 的次數,而 StartCountingOperation(Adjoint H) 只會計算呼叫 Adjoint H 的次數,即使 H 是自我相鄰也一樣。 這是因為執行會將這些作業的調用視為其特製化所區分的方式。
同樣地,StartCountingOperation(Controlled X) 只會計算呼叫 Controlled X 的次數,而 StartCountingOperation(CNOT) 只會計算呼叫 CNOT 的次數。
計算 Lambda 時,Lambda 系結至的符號會用來識別作業,並將它計算為個別作業。 例如
let myOp = q => H(q);
StartCountingOperation(myOp);
會特別計算對 myOp 的呼叫,而不是 H。 相較之下,下列程式代碼會計算對 H 本身的呼叫:
let myOp = H;
StartCountingOperation(myOp);
這是因為此程式代碼不會定義 Lambda,而是直接建立系結以 H。