问题标签 [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.
ubuntu - 标准输入的重定向似乎改变了 Dyalog APL 程序的行为(当使用名为 dyalog 的符号链接调用 mapl 时)
我正在尝试学习 APL(一般的 APL 和 Dyalog APL,它似乎正在积极开发并在斯德哥尔摩使用)。
这样做时,我观察到,在我的 Ubuntu Linux 环境中,当 stdin 与管道或打开磁盘文件而不是终端驱动程序。
当我用管道替换终端驱动程序作为标准输入时,解释器似乎不再理解]DISPLAY。
这里 ]DISPLAY 命令/功能似乎有效:
在这里,解释器似乎对 ]DISPLAY 感到困惑:
从现有的 UTF-8 编码文件加载和执行我的 APL 代码时,是否有一种简单的方法可以不丢失 ]DISPLAY 函数?
此致 !汉斯戴维森
apl - APL 组件文件与本机文件与数据库
我是 APL 的新手,我开始研究 APL 代码库,它大量使用 APL 组件文件(例如⎕FSTIE
, ⎕FREAD
, ⎕FAPPEND
)。我还被要求研究将这些组件文件的内容传输到 SQL 数据库,其目的是使数据可用于其他应用程序。
一些文件组件包含的文本乍一看似乎如果存储在本机文件中就可以正常工作,但大部分组件文件大多包含“不规则”数字矩阵,这些让我觉得最终会是实现为每个组件一个 DB2 表。迄今为止最大的大约是 500 行 x 20 列。我还没有(有意地)看到任何嵌套数组,尽管我只是勉强触及了表面。到目前为止,只有字符文本和数字向量和矩阵。
将这些组件文件的内容传输到 Native Files 也是一个明智的选择吗?为什么要使用 APL 组件文件呢?
正在使用的APL系统是Windows 7下的Dyalog APL。它已经存在了一段时间,没有人确定多久。
arrays - 尝试在 APL 中使用数组时出现问题。我错过了什么?
我显然错过了一些关于如何从 APL 中的数组中提取元素的事情,并希望有人能看到我错过了什么以及我应该如何以一种我可以以有意义的方式重现的方式获得预期的结果。
我在学习 APL 方面相对较新,我更习惯于 Python 和 C 等语言。APL 中的数据类型和数组操作工具似乎让我有点困惑。
考虑以下代码,请说明为什么(由我)预期的结果,
嵌入到更复杂的东西中,并且可能是解决该问题的方法。(使用 Dyalog APL/S-64、16.0.30320)
为什么不z
一样an_expected_vector
?
谢谢 !/汉斯
apl - 秩运算符与轴符号
几年前,我在大型机上偷看了 APL2,并记得向我展示了将向量添加到矩阵的问题的解决方案。
给定a←4 4 ⍴ ⍳16
和⎕io←1
将向量添加到行的旧方法类似于
导致
并将向量添加到矩阵的列是
或者,如果您愿意,
导致
幸运的是,我能够打电话给那天给我看 APL2 的那个人(他已经退休但仍然接听他的电话)并询问第二个解决方案,他立刻想起了我在说什么。
新的 APL2 方法更加简洁、简洁和一致,这些示例将通过a+[2] 10 20 30 40
and解决a+[1] 10 20 30 40
。凉爽的。它在 Dyalog 中工作。
快进十年或更长时间,我看到有一个叫做排名运算符的新东西。第一个例子可以解决a(+⍤1) 10 20 30 40
(我仍在努力掌握括号的用法,我想一旦我认为我理解了一点,我实际上再生了一些脑细胞)
尽管如此,没有直接的(至少对我而言)类似于a+[1] 10 20 30 40
使用秩运算符的第二个示例。我不能说我完全理解它,但在我看来,秩运算符通过折叠它的维度来“重新转换”它的左参数,同时保持内容完整。太多年的 C++ 和 Java 影响了我的思考方式。
a+[1] 10 20 30 40
有没有使用排名运算符的简单解决方案?到目前为止⍉(⍉a)(+⍤1) 10 20 30 40
,我发现的唯一想法是没有抓住重点并破坏了整个目的。
为什么秩运算符比轴符号更可取?哪个更好”?(可以肯定的是,这是一个加载的术语)乍一看,轴符号对我这个鞋码智商的人来说很容易掌握。对于等级运算符,我不能说同样的话。
c# - 遍历列表来自 Dyalog APL v14.0 及更高版本中的导入 (.net) 类
说到 APL,我是一个完全的新手,我希望你们中的一些优秀的人能够帮助我......
我有一个用 C# 编写并导出到 dll 的类库。然后我在 Dyalog APL (v14.0) 中导入这个类,我能够实例化类库中定义的类型的对象,并且可以根据需要访问字段。但是我发现自己无法遍历任何 List<T> 的项目。
C# 类(没什么可写的,但我把它包括在内以防万一):
回到 APL:
我的问题是:如何遍历 List 的每个元素并显示它们的字段值?我尝试了以下没有运气:
如何让它向我显示 Relation 字段的值(如 Relation.Id 或 Relation.Reference ...)
抱歉,这个问题很长,如果不清楚。任何帮助表示赞赏。
vector - 如何在 APL 中交错两个给定的向量
我正在尝试使用 APL 解决问题,为此我有两个向量v1
和v2
,相对长度最多为+1
,具体取决于输入。这意味着((≢v1)-(≢v2))∊¯1 0 1
.
交错所述向量的最佳方法是什么,以便创建第三个向量v3
,这样v3=v1[0],v2[0],v1[1],v2[1],...
?
(如果相关,我使用的是 Dyalog APL 16.0 版)
apl - 这个 APL 代码有什么作用?
我正在努力学习 APL。以下代码片段来自http://archive.vector.org.uk/art10011550,其中声明此代码就像用英语阅读“妈妈”一样简单!
我试图从https://en.wikipedia.org/wiki/APL_syntax_and_symbols检查,我发现
因此,此代码处理输入变量 V 并生成输出变量 R。但是,我无法弄清楚此代码的确切含义或作用?有人可以在这里解释一下。谢谢。
apl - Dyalog APL 中的并行会话
至少有一种单字母语言(当然q
)具有用于进程间通信的功能,这是一种在多台计算机上并行执行较长时间运行的进程。这些会话可以在同一台计算机上,也可以在不同大陆的服务器上。
使用 q,我只需启动一个服务器来侦听特定端口,例如q -p 8510
,然后从另一个 q 会话或其他软件访问它。令人印象深刻的容易。
我记得,在很久以前,使用大型机 APL 系统Shared Variables
,我可以与另一个用户共享一个变量。这可能是IBM APL.SV
。当时我并没有想太多,但几十年后的今天,Shared Variables
听起来像是平行会议的基础。与另一台计算机共享变量。
今天我怎么能或会用 Dyalog APL 或任何其他 APL 做到这一点,我可以
在另一台物理计算机上调用 APL 会话
向它发送命令或表达式
收到结果
可能在许多其他计算机上并行执行此操作
apl - 使用 dyalog apl 访问脚本函数中的 )fns 函数
我正在尝试使用 Dyalog APL 从启动脚本中生成函数列表,使用:
⍎ ')fns'
但得到这个错误:
⍎数值错误
在 APLX 中的潜在表达式脚本中使用⍎ ')fns'
不是问题,但我在 Dyalog 中做同样的事情时会感到沮丧。
帮助表示赞赏。
谢谢