Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 如何将Dyalog APL函数保存在文本文件中?_Function_File_Save_Apl_Dyalog - Fatal编程技术网

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

Function 如何将Dyalog APL函数保存在文本文件中?,function,file,save,apl,dyalog,Function,File,Save,Apl,Dyalog,我想将以下APL函数保存在.dyalog文件中: 但当我在Dyalog APL编辑器中键入此代码,并单击“保存并返回”按钮时,我得到了错误 无法修复没有名称的对象 这个错误意味着什么?我做错了什么?Dyalog编辑器设计用于一次编辑单个项(函数、运算符、命名空间脚本)-除非将它们嵌入命名空间中,否则不能使用它同时定义两个函数。你的选择是: 将这两行输入APL会话,然后使用以下命令创建两个.dyalog文件: ]save summul /yourfolder/summul ]save euler1

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

但当我在Dyalog APL编辑器中键入此代码,并单击“保存并返回”按钮时,我得到了错误
无法修复没有名称的对象


这个错误意味着什么?我做错了什么?

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作为参数。

谢谢!现在我已经在一个文件中保存了一个函数,如您所说(使用
]save
)。但是如何在Dyalog REPL中加载函数呢?我尝试了
]加载
,但出现的错误
无法修复
。我能够使用Morten的指令]保存并]加载函数和变量。在Windows版本中。谢谢,这很有用!是的,我考虑过用一个向量来写这个函数,但是这会把所有的值加起来,而我需要先把前两个加起来,然后减去最后一个元素。有什么提示吗?一些提示:1)注意当前解决方案在APL中的操作顺序。2) 要探索更多惯用的APL解决方案,请检查外部产品(“jot dot”),外部产品看起来很有趣!我一定去看看!
eulerOne←{
     summul←{+/⍵×⍳⌊1000÷⍵}
     (summul 3)+(summul 5)-(summul 15)
 }