涉及赋值的表达式的意外值

Unexpected value of expression involving assignment

我看到了这个逻辑,想知道为什么结果是 1 而不是 0:

      P ← 1 1 0
      Q ← 0 0 1
      ∨/ P ∧← Q
1

另一方面,以下结果为零:

      P ← 1 1 0
      Q ← 0 0 1
      ∨/ P ← P ∧ Q
0

我正在使用 Dyalog APL 16。

any赋值的结果是赋值箭头右边的值,所以P ∧← QreturnsQP ← P ∧ Q returns P ∧ Q 这也是分配给 P 的新值,根据 the documentation:

Assignment (Modified)   {R}←Xf←Y

(…)

R is the “pass-through” value, that is, the value of Y. If the result of the derived function is not assigned or used, there is no explicit result.

要获得就地修改的性能优势,同时使用内联新值,您可以编写 ∨/ P ⊣ P ∧← Q