GNU APL now binds 2 to / as discussed earlier. This creates a
derived function,
say TWICE, like:
∇ Z←A TWICE B ⍝ A not used Z←2 / B ∇
and then reduces TWICE with B: TWICE / B 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
Interestingly:
* as seen above, TWICE / B and 2 / / B now give
the same result in GNU APL,
* TWICE / B gives the same result in GNU APL and in
IBM APL2,
but: 2 / / B gives a DOMAIN ERROR
in IBM APL2, and
* TWICE / B also give the same results in GNU APL
and in Dyalog APL,
but Dyalog APL gives a different result (apparently the same as
the old
GNU APL implementation) for 2 / / B (from tryapl.org):
That suggest that the binding of operators is not very portable
between interpreters and one should not rely on them in the first
place. It seems to be more reliable bind explicitly as shown above
as to avoid unexpected surprises later on.