Greetings,
I wrote the following APL1 code a long time ago.
∇
[0] r←d Parse v
[1] ⍝ Convert vector v into a matrix breaking at delimiter d
[2]
r←(((0≠⍴v)×⍴r),⌈/r)⍴(,r∘.≥⍳⌈/r←¯1+(r,1+⍴v)-0,r←r/⍳⍴v)\(~r←v∈d)/v←,v
∇
It worked in 1981 and it works now.
I believe at some point someone on this list re-wrote the
above in GNU APL (APL2) as follows:
∇
[0] r←d Parse2 v
[1] ⍝ break up vector v according to delimiter d into
seperate arrays
[2] r←1↓1↓¨(1++\r∊d)⊂r←(1↑d),(1↑d),v
∇
Interestingly, Parse2 used to work but doesn't anymore. I
suppose the APL2 logic in GNU APL has changed. Two points:
1. Can someone help me fix this? (I don't know too much
about APL2.)
2. How good is APL2 if it can morph like this? (APL1
seems much more straightforward and consistent and less open
to interpretation.)
Thanks.
Blake McBride