Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Fullständigt kvalificerat namn: Std.Diagnostics.StartCountingOperation
operation StartCountingOperation<'In, 'Out>(callable : ('In => 'Out)) : Unit
Sammanfattning
Börjar räkna antalet gånger som den angivna åtgärden anropas. Misslyckas om åtgärden redan räknas.
Beskrivning
Med den här åtgärden kan du räkna antalet gånger en viss åtgärd anropas. Om den angivna åtgärden redan räknas ut utlöser anropet StartCountingOperation igen ett körningsfel. Inventeringen baseras på den specifika specialiseringen av den anropade åtgärden, så X och Adjoint X räknas separat.
På samma sätt är Controlled X, CNOToch CX oberoende åtgärder som räknas separat, liksom Controlled X och Controlled Adjoint X.
Inmatning
Inlösbara
Åtgärden som ska räknas.
Anmärkningar
Att räkna åtgärdsanrop kräver särskild försiktighet i vilken åtgärd som skickas som indata. Till exempel räknar StartCountingOperation(H) bara antalet gånger H anropas, medan StartCountingOperation(Adjoint H) bara räknar antalet gånger Adjoint H anropas, även om H är självanslutning. Detta beror på hur körningen behandlar anropet av dessa åtgärder som distinkta med deras specialisering.
På samma sätt räknar StartCountingOperation(Controlled X) bara antalet gånger Controlled X anropas, medan StartCountingOperation(CNOT) bara räknar antalet gånger CNOT anropas.
När lambdas räknas används symbolen som lambda är bunden till för att identifiera åtgärden och räknas som en separat åtgärd. Till exempel
let myOp = q => H(q);
StartCountingOperation(myOp);
Räknar specifikt anrop till myOp och inte H. Däremot räknar följande kod anrop till H sig själv:
let myOp = H;
StartCountingOperation(myOp);
Det beror på att den här koden inte definierar en lambda utan i stället bara skapar en bindning till H direkt.