“皮卡特”页面将其作为n-皇后的谓词
queens(N, Q) =>
Q = new_list(N),
Q :: 1..N,
all_different(Q),
all_different([$Q[I]-I : I in 1..N]),
all_different([$Q[I]+I : I in 1..N]),
solve([ff],Q).
我不理解列表理解中的$
之前的Q
。如果Q
是一个结构,那将是有道理的。但是Q
是一个列表。
谢谢。
更新。我只是尝试在整个表达式上加上括号:$(Q[I]-I)
和$(Q[I]+I)
。没有错误消息,并且程序正常运行。这是否意味着$
打算引用整个表达式,直到执行列表理解为止?