问题标签 [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 回答
331 浏览

apl - 谁能解释一下 apl 将如何在数学研究或金融行业中实施?

谁能解释一下 APL 将如何在数学研究或金融行业中实施?

我看到很多关于require APL的工作帖子,我已经开始学习它,但不知道他们为什么需要这个程序。有人可以给我一些简单的例子吗?

0 投票
3 回答
506 浏览

function - GNU APL 中的大括号

GNU APL 1.1 (svn 4460)在 Linux 上使用2.6.32,但函数定义存在一些问题。

此代码段按预期工作:

但是当我尝试这个

或这个

我收到语法错误。相同的片段在这里运行良好。

我是 APL 的完全初学者。谁能解释一下导致这个语法错误的原因?

0 投票
3 回答
919 浏览

function - 在 APL 中将函数作为参数传递

如何将函数作为参数传递?

基本思想是这样的(这是行不通的):

是否有类似\funerlang 或 C 中的函数指针的东西?

0 投票
2 回答
62 浏览

variable-assignment - 省略分配时出现错误“无错误”

我正在玩 APL 做这个问题

我定义了以下功能:

现在,当我执行以下操作时,我得到了预期的结果(232792560):

但是,当我省略分配给facs它时,它会严重失败:

我正在使用 GNU APL,所以我没有花哨的 dfun。

我实际上看不出这两种说法之间的区别。

这个错误从何而来?

0 投票
2 回答
407 浏览

product - 将函数应用于矩阵的每一行

我有一个函数可以v将长度为 9 的向量以offset3 个为一组旋转:

它似乎工作:

然后是一个以 3 个为一组m水平旋转 9x9 矩阵的函数:offset

这似乎也有效:

现在我想构建一个包含给定矩阵旋转 1、2 和 3 的向量(这是恒等式,但没关系):

所以我尝试了这个(思考:“制作两个向量的外积,第一个包含 1、2 和 3;第二个包含 a”):

不幸的是,这样做的结果是:

有人可以解释一下我的推理在哪里出错了吗?

0 投票
2 回答
909 浏览

apl - APL 中的 +.x 为何同时适用于矩阵和向量?

我确实理解,它基本上是通过加法减少乘法,但是有什么魔力,使它既适用于向量又适用于矩阵。

对于向量,我们可以做类似+/ A x B的事情,但结果相同。但这不适用于矩阵,x就像制作一个2 2矩阵一样,减少它会产生2向量。

并且按本书进行矩阵乘法,减少每个相应的 pow 和列乘法,在2 2对向量执行相同操作时会产生矩阵。

那么它是如何工作的呢?

0 投票
1 回答
460 浏览

apl - 可以将 GNU APL 输出发送到命令行绘图程序(例如 gnuplot)吗?

我想使用接受命令行输入的开源绘图软件(例如,gnuplot)绘制 GNU APL 计算的输出,但我不知道如何使用可用的系统命令和功能。)HOST 命令允许运行系统命令,但我不明白如何将输出或变量从终端显示重定向到命令行。

不太理想,但仍然可以将输出或变量保存到绘图软件可以读取的文件中。但是,我看到的唯一文件保存选项与工作区有关。

我不寻求的两个解决方案是:1)ASCII 字符图 2)将 GNU APL 作为将输出发送到标准输出但不是交互式 APL 的脚本运行。

感谢您的建议!

0 投票
1 回答
292 浏览

arrays - APL中的3+维真值表

我想枚举满足给定条件的 3 个或更多有限值变量的所有组合(值的元组)。在数学符号中:

例如(受Project Euler 问题 9启发):

一次两个变量的真值表很简单:

经过一番摸索,我设法将它们结合起来,通过计算前者的每个 4 值行的 ∧ 和后者的每个 4 值列,并在正确的轴上显示 (⊃),介于 1 和 2 之间:

然后我可以使用它的 ravel 过滤所有可能的值元组:

这是解决 APL 中这类特定问题的最佳方法吗?

此示例或一般情况是否有更简单或更快的公式?


更一般地说,将我上面的(天真的?)数组方法与传统的标量语言进行比较,我可以看到我正在将每个循环转换为一个额外的维度:3 个嵌套循环成为一个 3 秩真值表:

但是在标量语言中,可以在此过程中进行优化,例如尽快中断循环,或动态选择循环边界。在这种情况下,我什至不需要测试 a ≤ b ≤ c,因为它隐含在循环边界中。

在此示例中,两种方法都具有 O(N³) 复杂度,因此它们的运行时间只会相差一个因素。但我想知道:如果需要,如何以更优化的方式编写数组解决方案?

是否有任何解决 APL 算法问题或最佳实践的好书或在线资源?

0 投票
2 回答
673 浏览

math - 比较传统数学符号与 APL/J 符号的示例

我正在阅读一篇将Mathematica 与 APL/J进行比较的评论。文章中提出的一个问题对我来说似乎很有趣:

Mathematica 真的是表达我们创造性思想的方式吗?即回到 17 世纪为羊皮纸设计的符号,而不是向前到 20 世纪为计算机设计的符号?

可以分享艾弗森符号与传统数学符号的例子来展示 APL/J 在表达和解决数学问题方面的优势吗?这对新来的人会有很大帮助。

0 投票
2 回答
706 浏览

functional-programming - J引入fork的动机是什么

从 APL 到 J 的进化,引入 fork 的动机是什么?我想(+/ % #)计算平均值很好,但它也使阅读更长的动词训练变得更加困难。面对这种权衡,APL 的发明者是否有任何令人信服的理由在 J 中选择这种风格?