Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Полное имя: 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.
При подсчете лямбда-символ, к которым привязана лямбда-символ, используется для идентификации операции и считается отдельной операцией. Например
let myOp = q => H(q);
StartCountingOperation(myOp);
Будет подсчитывать в частности вызовы myOp, а не H. В отличие от этого, следующий код будет подсчитывать вызовы H себя:
let myOp = H;
StartCountingOperation(myOp);
Это связано с тем, что этот код не определяет лямбда-код и вместо этого просто создает привязку для H напрямую.