【发布时间】:2020-01-13 05:58:15
【问题描述】:
我在 Q# 中有一个用例,其中我有量子位寄存器 qs,并且需要在除第一个量子位之外的每个量子位上应用 CNOT 门,使用第一个作为控制。使用for 循环我可以这样做:
for (i in 1..Length(qs)-1) {
CNOT(qs[0], qs[i]);
}
现在,我想赋予它更多功能性的味道,并尝试做类似的事情:
ApplyToEach(q => CNOT(qs[0], q), qs[1..Length(qs)-1]);
Q# 编译器不接受这样的表达式,通知我它遇到了意外的代码片段。这对我的口味来说并不太有用。一些文件声称 Q# 支持匿名函数 a'la C#,因此上述尝试。谁能指出我在 Q# 中正确使用 lambda 或消除我的错误信念?
【问题讨论】:
标签: c# anonymous-function quantum-computing q#