假设我使用ReflectionStart()函数制作了一个ReflectionOracle对象,该对象反映了| 00 ... 00>轴。但是,如何通过该预言机传递我的qubits寄存器?由于此Oracle是一个对象,因此无法将其用作函数。是否有一个类似于UseOracle(reflectionoracle,register)的标准库工具?
答案 0 :(得分:0)
函数是Q#中的第一类对象,因此您只需在存储调用ReflectionStart
的结果的变量上调用即可。此外,由于该操作具有adjoint
,因此您还可以在其上调用adjoint,例如:
operation Operation () : ()
{
body
{
using (qubits = Qubit[5])
{
let oracle = ReflectionStart();
oracle(0.5, qubits);
(Adjoint oracle)(0.5, qubits);
}
}
}