【发布时间】:2020-01-17 10:11:49
【问题描述】:
我正在使用 Q# 进行通用 grover 搜索实现,我想定义一个自定义 Oracle 类型
newtype ModelOracle = ((Qubit[], Qubit[], Int[], Qubit) => Unit);
// ...
function GroverMaxMatchingOracle(search_set: (Int,Int)[], vertices: Int[], marked_pts: Bool[]): ModelOracle {
return ModelOracle(ApplyMaxMatchingOracle(_,_,_,_,search_set, vertices, marked_pts));
}
这将适合我的模型。但是当我尝试使用它时(与他们在 DatabaseSearch 示例中使用 StateOracle 的方式相同),我收到一条错误消息,指出新类型 ModelOracle 不是有效操作
fail: Microsoft.Quantum.IQSharp.Workspace[0]
QS5021: The type of the expression must be a function or operation type. The given expression is of type OracleHelper.ModelOracle.
我对这里的类型有什么误解?
【问题讨论】:
-
您还需要共享 ApplyMaxMatchingOracle 的签名,否则很难重现错误。
标签: q#