问题标签 [apl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
322 浏览

vector - 比较 APL 中的向量

我想检查 APL 中的 2 个向量是否相同。现在我正在使用以下解决方案(逐个元素比较,对元素求和并与 vector 的大小进行比较a):

有没有更快或更惯用的解决方案?

0 投票
3 回答
621 浏览

matrix - 了解 APL 的内部产品

以下是Mastering Dyalog APL一书的摘录,来自内部产品一章:

然后它说第二个和第三个解决方案在键入的字符数和性能方面是等效的。

据我了解,APL 程序员通常应该尽可能使用Inner Product以及Outer Product。那是对的吗?

你能举一个例子,当使用内积会导致性能提升?当我使用内部产品(在较低级别)时,究竟会发生什么?下面介绍的第一个解决方案是否很糟糕,仅仅是因为它没有以正确的方式使用 APL 语法,还是实际上性能更差?

我知道有几个问题,但我想问的一般是内部/外部产品是如何工作的,以及 APL 程序员应该在什么时候使用它们

0 投票
1 回答
199 浏览

syntax - Gnu-Apl 中的 {花括号} 是什么?

GNU-APL 中的 {花括号} 是什么?

据我所知,GNU-APL 使用 APL Iso 标准。

0 投票
3 回答
297 浏览

string - 在 APL 中删除字符串中的前导、尾随和多个空格

我在 APL 中编写了一个 dfn 来删除前导、尾随和多个空格。有没有其他方法可以进一步改进?

0 投票
1 回答
203 浏览

arrays - 为什么通过连接减少在 APL 中给出一个标量?

请注意,我将 Dyalog APL 用于以下用途。

鉴于:

如果我通过连接执行归约,我会得到一个标量:

自然,我不能再访问我的“数组”的元素。我想知道为什么会发生这种行为?我曾经相信它的/行为就像foldr,产生了一个向量,那么为什么我最终会得到一个标量结果呢?

提前感谢您的帮助。

0 投票
3 回答
286 浏览

cross-platform - 是否有一个 APL 成语来获取所有字母字符的向量?

我知道你可以得到一个所有数字的字符向量∊⍕¨⍳10,但是除了手动输入之外,是否有一个独立于平台的习语来获取所有字母字符的向量'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'?我知道我可以在 Dyalog APL⎕AV[(⍳26)+(⎕AV⍳'a')-1]中获取所有小写字符(以及通过将 to 更改为大写'a') ,但我认为系统变量在其他环境中不可用。'A'⎕AV

0 投票
2 回答
231 浏览

c++ - 跨平台的 C++ 函数到 APL

我目前正在为 APL 编写 C++ 程序。到目前为止,我一直在做的是在 APL 中创建一个函数,它运行命令提示符并调用可执行文件,它创建的输入和输出文件作为参数,反过来,C++ 可执行文件被编程为打开输入文件,读取输入并将输出存储在输出文件中,该文件由 APL 函数获取并存储在一个或多个变量中。这种方法的问题在于,当我使用会被大量调用或有时递归调用的更简单的函数时,为了简单的计算而一直打开和关闭文件会占用大量的处理时间。我试图找出一种方法来调用用 C++ 编写的函数,无论是从解决方案还是库中,并直接在我的 APL 工作区中使用它。

例如,我有一个用这种形式编写的 C++ 函数:

Xadd(int x, int y);

并希望像这样在 APL 中编写它,Xadd (x) (y)并且以后能够通过 APL 使用∇Xadd. 谢谢。

0 投票
3 回答
590 浏览

vector - 将字符向量划分为段

我有以下向量Vec: ACGTTGCA并想将其划分为一个嵌套向量,其中在第 i 个位置上将有一个Vec长度为 4 的子段,从 的第 i 个位置开始Vec

例如,Vec[(⍳¯3+⍴Vec)∘.+¯1+⍳4]返回:

但是上面输出的问题是它是一个字符矩阵,而我想得到以下输出:

对于以下字符串: vec←'Hy, only testing segmenting vec into pieces of 4' 我正在寻找的正确结果是:

另外,有没有办法将这样的向量转换为单个向量,其中后续行将包含 4 个字符?

示例:对于foobartesting字符向量,结果将是:

0 投票
1 回答
417 浏览

vector - 在 APL 中组合向量(使用每个向量的元素创建元组)

0 投票
2 回答
341 浏览

haskell - reduce/scan 如何在 APL 中使用用户定义的函数工作?

我试图在 APL 的布尔向量中找到最长的不间断的 1 链的长度。在 Haskell 中,如果我有一个由 1 和 0 表示的布尔列表,我可以这样做:

然后取最大值。

我试图在 APL 中做类似的事情:

这根本不是我期望的向量。我曾假设 ⍺ 将在扫描/减少的上下文中引用累加器,而 ⍵ 将引用向量的下一个元素,但我的理解似乎有点偏离。这些简单的例子也让我感到困惑:

甚至可以(在实践中)在 APL 中使用带有扫描/减少的用户定义函数吗?如果是这样,它是如何工作的,⍺ 和 ⍵ 指的是什么?