我在这个问题 How to use rank operator instead of each in APL how to build own Each operator using Rank 中看到了答案。

Monadic 每个 f¨x 可以表示为 {⊂f⊃⍵}⍤0⊢x
二元每个x f¨y可以表示为x{⊂(⊃⍺)f(⊃⍵)}⍤0⊢y
对此,请回答以下问题:

  • 为什么每个 ¨ 操作符都可以表示为Each←{⍺←⊢ ⋄ ⍺ ⍺⍺{×⎕NC'⍺':⊂(⊃⍺)⍺⍺(⊃⍵) ⋄ ⊂⍺⍺⊃⍵}⍤0⊢⍵}
  • 上面的表达式中的⍺⍺是什么意思

  • 预先感谢您的回答。

    最佳答案

  • 这个定义基本上结合了你上面列出的一元和二元案例。如果 ×⎕NC'⍺' 存在,则 1 将返回 ,否则返回 0,因此它会检查您是否使用 Each 一元或二元。
  • ⍺⍺ 是 dop Each 的左操作数。是fx f Each y中的f Each y
  • 关于apl - 如何在 Dyalog APL 中使用 Rank 运算符构建自己的每个运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58299517/

    10-14 20:22