我在用 GNU APL 1.1 (svn 4460) 在Linux上 2.6.32 我在功能定义方面有一些问题。

该片段按预期工作:

∇R←ODD N
R←2|N
∇

(ODD L)/L←⍳10

但是当我尝试这个

{2|⍵} 5

或这个

ODD←{2|⍵}

我得到语法错误。同一片段运行正常 这里.

我是APL的完整初学者。谁能解释我是什么导致这种语法错误?

有帮助吗?

解决方案

您的第一个示例使用常规APL“ DEL”符号来定义函数。第二个示例使用直接定义(通常称为dfns-发音为dee -funs),这是Dyalog APL的扩展,显然不会在您使用的解释器中运行。以这种方式定义函数的易度性是一个很大的优势。

其他提示

所有APL都不支持DFN(卷曲括号中的功能片段)语法。如果不支持,请期望语法错误或nonce错误。

据我所知,只有Dyalog apl和ngn apl(请参阅 http://ngn.github.io/apl/web/)支持它。

Sharp APL具有直接的定义功能,但语法却大不相同。

NGN APL不支持遗留功能定义,仅支持DFN。

GNU APL现在对此类DFN有所支持;您可以通过从颠覆存储库中编译或等待版本1.3来尝试它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top