Global names in dfns

General APL language issues
Post Reply
mikepowell
Posts: 6
Joined: Thu Dec 05, 2013 8:01 pm

Global names in dfns

Post 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×+/,⍵}
User avatar
Phil Last
Posts: 628
Joined: Thu Jun 18, 2009 6:29 pm
Location: Wessex

Re: Global names in dfns

Post 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.
Post Reply