Consider the following function, which should return a function that adds two to any given argument:
∇r←addtwo
r←{⍵+2}
∇
This code loads without any errors, but I just cannot use the return value without causing errors.
addtwo ⍝ doesn't cause errors
addtwo 1
VALUE ERROR
addtwo 1
^
x←addtwo
VALUE ERROR
x←addtwo
^
I am using GNU-APL 1.8
.
I believe Dyalog APL is the only implementation allowing this. Try it online!
Even though this could work, it isn't the normal APL way of doing things. You may want to look into writing your own operator instead.