You shouldn't need a space after the right parenthesis. This works for me:
z←(F scan)x;y z←⊂y←↑x ∆1:→(0=⍴x←1↓x)/0 z←z,⊂y←y F↑x →∆1 +scan 2 3 4 2 5 9 I had to: - change " to ↓ for Drop - use monadic ↑ instead of ⊃ for First (this is a Dyalog "migration level" thing) - replace modified assignment z,← with z←z, Jay. On 14 April 2015 at 12:06, Fausto Saporito <fausto.sapor...@gmail.com> wrote: > Hi Jürgen, > > thanks... my fault. I wrote without space after the right parenthesis and > the interpret gave me an error. I.e. ∇z←(F scan)x;y > > I didn't notice the blank space was mandatory. > > regards, > Fausto > > > > 2015-04-14 12:58 GMT+02:00 Juergen Sauermann > <juergen.sauerm...@t-online.de>: >> >> Hi Fausto, >> >> page 30 (Defined Functions and Operators) explains it. >> In your example below F is expected to be a function because it >> is inside () in the header while the variable(s) are outside (). >> >> /// Jürgen >> >> >> On 04/14/2015 12:42 PM, Fausto Saporito wrote: >> >> Hello all, >> >> sorry if I bother you again, but I tried to find some hints in the APL2 >> Language Reference Manual without luck. >> >> In the Sullivan's paper, there's the reference to a "scan" operator quite >> fast more suited to be used with his multi precision package. >> This is its definition: >> >> ∇ z←(F scan)x;y >> >> z←⊂y←⊃x >> ∆1:!(0=⍴x←1"x)/0 >> z,←⊂y←y F⊃x >> !∆1 >> >> the "!" is the branch arrow. >> >> Now the problem is with GNU APL I cannot define this operator, cause I >> don't know how to specify F is a function not a variable. >> >> is there a way to do that ? >> >> thanks, >> fausto >> >> >> >> >