1

考虑以下函数,它应该返回一个将两个添加到任何给定参数的函数:

∇r←addtwo
  r←{⍵+2}
∇

这段代码加载没有任何错误,但我不能使用返回值而不导致错误。

      addtwo ⍝ doesn't cause errors
      addtwo 1
VALUE ERROR
      addtwo 1
      ^
      x←addtwo
VALUE ERROR
      x←addtwo
      ^

我正在使用GNU-APL 1.8.

4

2 回答 2

2

您打算做的通常的解决方法是从函数返回一个字符串并执行(⍎)该字符串:

      ∇Z←FOO
[1] ⍝ return a string that can be ⍎'ed····
[2] Z←'{⍵+2}'
[3] ∇

      ⍎FOO,⍕42
44
于 2020-12-31T11:54:55.550 回答
1

我相信Dyalog APL是唯一允许这样做的实现。在线尝试!

尽管这可行,但这不是 APL 做事的正常方式。您可能想考虑编写自己的运算符

于 2020-12-27T03:40:45.043 回答