How about implementing a non-conflicting extension? I'm suggesting the
following form as an alternative:

      Z ← f ⍤[j] B
      Z ← A f ⍤[j] B

Regards,
Elias


On 7 February 2016 at 20:27, Juergen Sauermann <
juergen.sauerm...@t-online.de> wrote:

> Hi Alex,
>
> not sure what   *a ¯3⍤< m*  is supposed to mean.
>
> According to the ISO standard the syntax for *⍤* is:
>
> *Z ← f ⍤ j B           *(monadic, page 124) or
> *Z ← A f ⍤ j B         *(dyadic, page 125)
>
> If you compare that with your example:
>
> a ¯3 ⍤ < m
>
> then the (expected value) *j* is the primitive function *<*, which
> triggers the *VALUE ERROR*.
> The fact that the caret points to *a* is not because *a* is the culprit,
> but because *a* is the left
> end of the phrase being reduced.
>
> Unfortunately the syntax in the ISO standard is somewhat ambiguous:* j *is
> a one, two, or three
> element vector, and B is the rest. Therefore it is sometimes impossible to
> decide where *j* ends
> and where *B* begins, and the examples for *⍤* in the ISO standard are in
> conflict with the IBM APL2
> binding rules. This  conflict occurs only with *⍤* which - wise decision
> - is not implemented at all
> in IBM APL2.
>
> The conflict can be avoided by always putting *j* and *B *into separate
> variables. If you use literals for *j*
> or *B*, heaven forbid, then be prepared for fairly nasty error messages
> at times.
>
> /// Jürgen
>
>
>
> On 02/06/2016 05:17 PM, alexwei...@alexweiner.com wrote:
>
>
> Hi bug-apl,
>
> Why am I getting a value error here? It seems that the variable 'a'
> definitely exists:
>
>       a←2 2 ⍴2
>       m←4 4 ⍴⍳16
>       a
> 2 2
> 2 2
>       m
>  1  2  3  4
>  5  6  7  8
>  9 10 11 12
> 13 14 15 16
>
>
>
> VALUE ERROR
>       a ¯3⍤<m
>       ^
>       a
> 2 2
> 2 2
>
>
>
>
> SVN 693
> -Alex
>
>
>

Reply via email to