考虑下面的函数,它应该返回一个对任何给定参数加2的函数:
∇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。
发布于 2020-12-27 11:40:45
我相信Dyalog APL是唯一允许这样做的实现。Try it online!
即使这可以工作,这也不是正常的APL方式。您可能希望转而考虑编写your own operator。
发布于 2020-12-31 19:54:56
通常的变通方法是从函数返回一个字符串并执行(⍎)该字符串:
∇Z←FOO
[1] ⍝ return a string that can be ⍎'ed····
[2] Z←'{⍵+2}'
[3] ∇
⍎FOO,⍕42
44https://stackoverflow.com/questions/65462605
复制相似问题