So steht es im APL2 User's Guide unter "Deviations from APL2 Programming Language Reference":
"Any usage of bracket indexing in a selective assignment expression, such as
(2↑V[⍳4])←3
gives SYNTAX ERROR."
Das hat bisher auch stets so "funktioniert". Ich konnte mich also darauf verlassen, dass vom Host migrierte Funktionen an solch einer inkompatiblen Stelle unterbrochen wurden.
Es ist allerdings nicht nur so, dass Workstation APL2 eine selektive Zuweisung kombiniert mit den eckigen Klammern nicht zulässt, es versäumt in einem Spezialfall sogar die oben beschriebene Fehlermeldung. Hier ist der Fall:
V←(1 2 3)(4 5 6)
(1⊃V)[2]←12
Keine Fehlermeldung, kein SYNTAX ERROR, wie doch im User's Guide angekündigt. Sollte es etwa möglich sein, dass mit "Pick" in einer selektiven Zuweisung die Nutzung von eckigen Klammern möglich wird?
Leider nicht. Die Verarbeitung wird zwar ohne Fehler fortgesetzt, aber im obigen Beispiel bleibt V unverändert, als wäre die betreffende Anweisung nicht vorhanden.
Es ist schon
schade, dass diese Form der selektiven Zuweisung auf der Workstation nicht funktioniert (man kann die Inkompatibilität immerhin leicht mit Hilfe der Indexfunktion beheben). Es wäre allerdings hilfreich, wenn APL2 Workstation auf solche Stellen konsequent mit einem SYTAX ERROR reagiert.