您的第一个示例使用常规APL“ DEL”符号来定义函数。第二个示例使用直接定义(通常称为dfns-发音为dee -funs),这是Dyalog APL的扩展,显然不会在您使用的解释器中运行。以这种方式定义函数的易度性是一个很大的优势。
题
我在用 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都不支持DFN(卷曲括号中的功能片段)语法。如果不支持,请期望语法错误或nonce错误。
据我所知,只有Dyalog apl和ngn apl(请参阅 http://ngn.github.io/apl/web/)支持它。
Sharp APL具有直接的定义功能,但语法却大不相同。
NGN APL不支持遗留功能定义,仅支持DFN。
GNU APL现在对此类DFN有所支持;您可以通过从颠覆存储库中编译或等待版本1.3来尝试它。
不隶属于 StackOverflow