bug-apl
[Top][All Lists]

## Re: [Bug-apl] defining new operator

 From: Jay Foad Subject: Re: [Bug-apl] defining new operator Date: Tue, 14 Apr 2015 12:25:19 +0100

```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

- 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 <address@hidden> 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
>>
>> 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
>>
>>
>>
>>
>

```