Global names in dfns

General APL language issues

Global names in dfns

Postby mikepowell on Tue Feb 04, 2020 4:35 pm

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×+/,⍵}
mikepowell
 
Posts: 6
Joined: Thu Dec 05, 2013 8:01 pm

Re: Global names in dfns

Postby Phil Last on Wed Feb 05, 2020 7:29 am

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.
User avatar
Phil Last
 
Posts: 628
Joined: Thu Jun 18, 2009 6:29 pm
Location: Wessex


Return to Language

Who is online

Users browsing this forum: No registered users and 1 guest