[英]Braces in GNU APL
我在Linux 2.6.32
上使用GNU APL 1.1 (svn 4460)
,我在函数定义方面遇到了一些问题。
此代码段按预期工作:
∇R←ODD N
R←2|N
∇
(ODD L)/L←⍳10
但是当我试着这个
{2|⍵} 5
或这个
ODD←{2|⍵}
我收到语法错误。 相同的片段在这里运行良好。
我是APL的初学者。 有人能解释一下导致这种语法错误的原因吗?
您的第一个示例使用传统的APL“del”表示法来定义函数。 后两个例子使用直接定义(通常称为dfns - 发音为dee-funs),这是Dyalog APL的扩展,显然不会在你正在使用的解释器中运行。 以这种方式定义功能的便利性是一个很大的优势。
所有APL都不支持dfns(花括号中的函数片段)语法。 如果不支持,则会出现语法错误或nonce错误。
据我所知,只有Dyalog APL和NGN APL(见http://ngn.github.io/apl/web/ )支持它。
Sharp APL有一个直接的定义功能,但语法却截然不同。
NGN APL不支持传统功能定义,仅支持dfns。
GNU APL现在支持这样的dfns; 您可以通过从subversion存储库编译它或等待版本1.3来尝试它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.