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

How do I save Dyalog APL functions in a text file?

我有以下 APL 函数,我想将其保存在 .dyalog 文件中:

⍝ Project Euler Solutions

 summul ← {+/⍵×⍳⌊1000÷⍵}
 euler1 ← (summul 3) + (summul 5) - (summul 15)

但是当我在 Dyalog APL 编辑器中键入此代码并单击 保存和 Return 按钮时,出现错误 Cannot fix object without a name.

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

Dyalog 编辑器设计用于一次编辑单个项目(函数、运算符、命名空间脚本)- 它不能用于同时定义两个函数,除非您将它们嵌入到命名空间中。您的选择是:

将这两行输入到 APL 会话中,然后使用以下命令创建两个 .dyalog 文件:

]save summul /yourfolder/summul
]save euler1 /yourfolder/euler1

或者,使用 )ed ⍟euler 启动编辑器,这将创建一个名称空间,您可以将这些行粘贴到其中。请注意,您随后需要引用带有命名空间前缀的函数,例如 euler.summul.

您还应该注意,那里只有一个功能。第二行是表达式,不是函数,不能在Dyalog函数编辑器中自行保存。除了上述 Morten 的解决方案之外,您还可以创建一个定义 summul 然后计算表达式的函数:

eulerOne←{
     summul←{+/⍵×⍳⌊1000÷⍵}
     (summul 3)+(summul 5)-(summul 15)
 }

您必须向该函数传递一个虚拟参数才能执行它(例如零)。一件有趣的事情可能是重写函数以将向量 3 5 15 作为参数。