Page 1 of 1

Global names in dfns

Posted: Tue Feb 04, 2020 4:35 pm
by mikepowell
Is the following behaviour to be expected?

      )clear
clear ws
input←?15 15⍴9
+/,input
1111
{p←⍵ ⋄ {p×+/,⍵}input}2 3 4
2222 3333 4444
f←{p×+/,⍵}
{p←⍵ ⋄ f input}2 3 4
VALUE ERROR: Undefined name: p
f[0] f←{p×+/,⍵}

Re: Global names in dfns

Posted: Wed Feb 05, 2020 7:29 am
by Phil Last
Yes this is normal.
The p referenced inside f has to be in the same lexical scope as that in which f is itself defined.
      {p←⍵ ⋄ f←{p×+/,⍵} ⋄ f input}
or
      {f←{p×+/,⍵} ⋄ p←⍵ ⋄ f input}
would work.