정규화된 이름: Std.Diagnostics.StartCountingOperation
operation StartCountingOperation<'In, 'Out>(callable : ('In => 'Out)) : Unit
요약
지정된 작업이 호출되는 횟수를 계산하기 시작합니다. 작업이 이미 계산되고 있으면 실패합니다.
묘사
이 작업을 사용하면 지정된 작업이 호출되는 횟수를 계산할 수 있습니다. 지정된 작업이 이미 계산되는 경우 StartCountingOperation 다시 호출하면 런타임 오류가 트리거됩니다. 계산은 호출된 작업의 특정 특수화를 기반으로 하므로 X 및 Adjoint X 개별적으로 계산됩니다.
마찬가지로 Controlled X, CNOT및 CXControlled X 및 Controlled Adjoint X개별적으로 계산되는 독립적인 작업입니다.
입력
호출할
계산할 작업입니다.
발언
작업 호출을 계산하려면 입력으로 전달되는 작업에 대한 특정 주의가 필요합니다. 예를 들어 StartCountingOperation(H)H 호출되는 횟수만 계산하고 StartCountingOperation(Adjoint H)Adjoint H 자체 인접한 경우에도 H 호출되는 횟수만 계산합니다. 이는 실행에서 이러한 작업의 호출을 특수화와 구별되는 것으로 처리하는 방식 때문입니다.
같은 방식으로 StartCountingOperation(Controlled X)Controlled X 호출되는 횟수만 계산하고 StartCountingOperation(CNOT)CNOT 호출된 횟수만 계산합니다.
람다를 계산할 때 람다가 바인딩된 기호는 작업을 식별하는 데 사용되며 별도의 연산으로 계산됩니다. 예를 들어
let myOp = q => H(q);
StartCountingOperation(myOp);
myOp아니라 H 대한 호출 수를 계산합니다. 반면, 다음 코드는 H 자체에 대한 호출을 계산합니다.
let myOp = H;
StartCountingOperation(myOp);
이 코드는 람다를 정의하지 않고 직접 H 바인딩을 만들기 때문입니다.