Function GNU APL中的括号

Function GNU APL中的括号,function,apl,Function,Apl,我正在Linux上使用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),这是D

我正在Linux上使用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(见)支持它

夏普APL有一个直接定义功能,但语法却大不相同


NGN APL不支持传统功能定义,仅支持DFN

GNU APL现在支持这种DFN;您可以从subversion存储库编译它,或者等待1.3版。

非常感谢。对于在Linux机器上工作并希望了解APL的人,您会推荐哪种解释器。我发现有一个针对Linux的Dyalog个人版,但我找不到下载。还有NARS2000,但显然这只适用于windows?我怎样才能开始APL?我肯定会选择Dyalog。他们的网站不如他们的产品好。。。我只想通过电子邮件告诉他们如何获得Linux版本。GNU APL将提供此功能,但目前尚未提供。