在 APL 中检查每个相邻的列表对是否有序(默认编程)

Check that each adjacent pair of a list is in order (tacit programming) in APL

给定 APL 中的列表,我想检查每个相邻对是否按顺序排列。 所以,给定 (a0, a1, ..., an),我想计算:

(a0 ≤ a1) ∧ (a1 ≤ a2) ∧ .... ∧ (a[n-1] ≤ an)

我不想计算等效形式,我想使用默认编程。 我的解决方案是 ((¯1↓⊢)∧.≤(1↓⊢)) 但它似乎太冗长了。 有人有什么想法吗?

⍳∘≢≡⍋

计算 grade 并且如果数组已经排序,那么它将只是元素的枚举,所以我们使用 将等级与 ⍳∘≢ 这是你的数组长度的数组的索引。

您可以通过 searching for "sorted?" 在 APLcart 上找到它。

∧/2≤/⊢

X f/ Y 使用大小 X 的滑动 windows 计算 Y 中的 f 减少量。因此,如果 X←2 那么我们得到成对减少,或者换句话说,在后续对之间插入 f。需要 来完成 3-train 2 ≤/ ⊢ 然后我们只需要使用 ∧/

将所有结果布尔值与在一起