问题标签 [dyalog]

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 投票
1 回答
75 浏览

file - 读取 FITS 文件

我在几种编程语言方面有一些经验,但我想尝试 APL。我正在做一些教程,但我想在一个实际的例子中工作。我想以FITS格式(天文学数据的一种非常常见的格式)从文件中读取天文图像,并对它们进行一些计算。图像只不过是一个大的数字矩阵(我的是整数,但它们可能是双精度数......这并不重要,无论如何)。并且每个文件可以有一个或多个图像(不仅如此,还有表格和元数据信息)。一旦加载了其中一个图像,就会对其应用具有一些计算的函数。

我想知道是否有任何用于 APL 的库或包具有执行此FITS文件处理(读取、写入、修改、检索或更改元数据、扩展等)的功能,或者我是否应该使用一种包装器使用具有完善库的任何其他语言(C、C++、Python...)来执行所有输入/输出,并在 APL 中具有计算核心。

(我在 Google 和一些面向 APL 的网站中快速搜索并没有产生任何有效的结果。)

0 投票
1 回答
96 浏览

apl - 将单例向量值分配给 Dyalog APL 中尚未定义的单个变量

Dyalog APL 允许将多个值的向量分配给相应数量的多个尚未定义的变量:

如何将单个元素向量中的单个值分配给单个尚未定义的变量?

我尝试了什么:

这可行,但它太脏了:

单例向量是作为函数结果之一获得的,我想在调用函数后避免额外的←⊃语句。

0 投票
1 回答
51 浏览

version-control - 原始函数序列的 Dyalog SALT.Load 异常“无法修复”

我一直在尝试,SALT但遇到Load了似乎只影响原始功能训练的一致问题。我希望有任何关于确保所有功能Load正确的建议。

为了说明,在一个清晰的工作区中,我将创建一些用于转换十六进制和八进制的示例函数。有些是 dfns,有些是原始火车:

初始盐状态:
⎕SE.SALT.List '/path/to/salt'
Type Name Versions Size Last Update

然后Snap工作区:
⎕SE.SALT.Snap '/path/to/salt -clean -loadfn'

⎕SE.SALT.List '/path/to/salt -type'

并检查load_ws函数正在导入什么:
⎕CMD 'cat /path/to/salt/load_ws.dyalog | grep "^ Load''"'

在一个清晰的工作区中,运行load_ws
⎕SE.SALT.Load '/path/to/salt/load_ws'
load_ws

dfns 加载正常,火车失败。
一个现成的解决方法是使用 tradfns 或 dfns 进行包装,但这是非常不可取的。

关于让 SALT 正确加载这些功能的任何想法?
谢谢

0 投票
2 回答
261 浏览

function - 如何将 Dyalog APL 函数保存在文本文件中?

我有以下要保存在.dyalog文件中的 APL 函数:

但是当我在 Dyalog APL 编辑器中输入此代码并单击Save and Return按钮时,我得到了错误 Cannot fix object without a name

这个错误是什么意思?我究竟做错了什么?

0 投票
2 回答
105 浏览

indexing - 如何从 APL 隐性函数中的矩阵中提取多个元素?

(Dyalog) APL 学习者问题

如果我有一个矩阵 Y:

我可以像这样得到它的两个成员:

我可以使用 dfn 语法使用相同的技术:

但是,我无法弄清楚如何在默认功能中进行等效操作。特别是括号索引似乎在默认功能中不起作用,并且我找不到将小队索引与索引列表一起使用的方法。

有没有办法做到这一点,或者这是默认功能的限制?

请注意,在我的真实示例中,生成了索引列表,所以我不能简单地做(((1 1)⌷⊢),(2 2)⌷⊢)Y任何类似的事情。

0 投票
1 回答
76 浏览

apl - 将函数标识符转换为字符串

如果我在 APL 中有一个函数向量,有没有办法将函数名称的向量作为字符串获取?我试过 DISPLAY 和 ⍕ 没有成功:

另外,为什么调用DISPLAY的输出中的元素周围没有边框?

0 投票
1 回答
100 浏览

fold - 为什么 reduce 运算符不能按我预期的方式工作?

我正在尝试在 Dyalog APL 中解决Euler 18,但我无法理解为什么我的解决方案不起作用。

问题如下:

通过从下方三角形的顶部开始并移动到下方行中的相邻数字,从上到下的最大总数为 23。

也就是说,3 + 7 + 4 + 9 = 23。

以我以这种方式表示的示例为例:

我正在尝试以这种方式解决它:

这给了我这个数组:22 19 15 0,其中更大的数字是 22,这不是问题的正确答案,它应该是 23。

我得到了这种行为(为了便于阅读,从左到右):

这给了我与函数相同的结果。

我期望的是这种行为(每个语句直接在下一行替换):

我是否想知道我在 APL 流程中的哪些地方误解了导致与我预期不同的结果。

谢谢!

0 投票
1 回答
94 浏览

arrays - 在 APL 中如何将字符串转换为一个单元格向量

所以,我有一个函数 f ,它接受一个字符串作为输入。我想创建一个函数 g 将 f 映射到字符串向量。IE

g 'Hello' 'world'

应该产生

(f 'Hello')(f 'world')

这是我所做的:

这对于上面的例子来说很好。但是,当正确的参数只是一个字符串时,它不起作用,因为它将 f 映射到该字符串的每个字符。例如:

g 'Hello'

产量

(f 'H')(f 'e')(f 'l')(f 'l')(f 'o')

当然,我希望输出为f 'Hello'.

我可以写

所以这'Hello'将被解释为

但随后'Hello' 'world'将被解释为

然后它不会正确映射。

有没有办法简洁地解决这个问题?

0 投票
2 回答
76 浏览

apl - QUAD VI、QUAD FI 和 QUAD VFI 的 APL2 等效项是什么?

我一直在查看 APL 代码示例,其中一些使用 QUAD FI、QUAD VI 和 QUAD VFI。前两个在我的教科书中进行了描述(APL 一种交互式方法)。当我在 APL2 中尝试这些时,我得到一个 VALUE ERROR。

APL2中是否有等价物?

0 投票
2 回答
130 浏览

apl - 如何在 APL 中屏蔽扫描运算符?

假设我有一个数组N ← 0 0 0 1 1 1 0 0 1,我该如何应用扫描\来实现数组0 0 0 1 2 3 0 0 1

+\N给了我0 0 0 1 2 3 3 3 4这不是我想要的。

+\¨⊆⍨N给了我| 1 2 3 | 1 |更近的位置,但后来我失去了位置。

有没有办法在扫描和乘法中携带原始值,或者可能是更好的方法?