In IBM APL2, / ⌿ \ ⍀ are always operators:
3/4 ⍝ 3 is the left operand; derived function 3/ is applied
monadically to the argument 4
4 4 4
1 1 0/¨'GNU' 'APL' ⍝ derived function 1 1 0/ applied to each of
'GNU' and 'APL'
GN AP
... so you can't use /¨ in the way that you expected; in pr
Hi,
I have changed the parser to degrade / and friends from operator to
function in the examples below.
One remaining case is (with / any of / ⌿ \ or ⍀):
S//B
where the left / is a function when S is a value and and an operator if
S is a
function (which is not known at parse time). The bind
The / and \ symbols (and their first coordinate versions ⌿ and ⍀) were
overloaded from the start. Not enough characters on the 2741 typeball
or something. Symbol pressure.
First, they are the compression and expansion functions.
1 0 1 / 1 2 3
Second, they are the reduction and scan operators.
+/1
The following gives a syntax error:
*((1 1) (1 0))/¨'ab' 'cd'*
SYNTAX ERROR
(1 1) (1 0)/¨'ab' 'cd'
^ ^
But, assuming the following function:
∇Z←X sel Y
Z←X/Y
∇
This works:
*((1 1) (1 0))sel¨'ab' 'cd'*
ab c
Regards,
Elias