GNU APL 中无法识别的符号

Unrecognised symbols in GNU APL

我正在尝试使用 GNU APL,但我的实验很快陷入僵局。 事情是这样的:

x←1 2 3 4 5
⍝ build the matrix u where u_{ij} = x_i + x_j,
⍝ then filter the entries equal to 6
u←6=x∘.+x

到目前为止一切顺利,u 是一个翻转的单位矩阵,正如预期的那样。

现在,我想获取非零条目的索引,所以我尝试

⍸u

但在这里我收到 SYNTAX ERROR++ 警告。 输入以下任一命令都会出现同样的错误:

{⍸6=⍵∘.+⍵}x
{⍸6=⍵∘.+⍵} 1 2 3 4 5
{⍸6=⍵∘.+⍵} ⍳5
app←{⍸6=⍵∘.+⍵}

我怀疑这是我本地安装的问题,因为我无法在 online interpreter.

上重现错误

有人以前见过这个问题吗? 我从源代码(ubuntu,GCC)编译APL,错误出现在版本1.7和1.8中。 我可以使用 GNU 镜像中提供的预编译二进制文件重现错误。 我想知道我是否在编译和安装 GNU APL 时犯了一个错误,但我做的唯一非标准的事情是从 src 文件夹中的 Makefile 中取消设置 WERROR 标志,否则由于未检查 return 源中的值。

我给 bug-apl@gnu.org 发了邮件让别人看看。这是我得到的回复:

no idea. I am getting this:

      ⍝ build the matrix u where u_{ij} = x_i + x_j,
      ⍝ then filter the entries equal to 6
      u←6=x∘.+x
 
      ⍸u  1 5  2 4  3 3  4 2  5 1

SVN is 18005 aka. 1474 and the related code has not changed für years.

Regarding:

"otherwise it would not compile due to an unchecked return value in the source."

please report this kind of problems to bug-apl@gnu.org with a printout of the compiler's error message. Compilers are becoming increasingly picky about various this which causes code to happily compile for a decade an then out of a sudden raise a warning with a new compiler code.

I have the ambition that GNU APL compiles on almost all platforms and compilers and since I cannot test all platforms on my own it is important that users like you with a different platform inform me about problems.

Best Regards,
[Dr.] Jürgen [Sauermann, the main developer of GNU APL]


根据 GNU APL mailing list 编辑:

2020 年 12 月添加了对 的支持 (r1368)。已发布的压缩包没有它;您必须从存储库编译开发版本才能获得它。

请注意,压缩包不是安装 GNU APL 的首选方式。