APL+Win hat mit der
Version 6.2 eine neue Grundfunktion spendiert bekommen: UNIQUE. Damit einher geht auch die Notwendigkeit für die Belegung eines Symbols. Das ist typisch für APL. Es ist nicht gerade überraschend, dass für UNIQUE "Cup" ∪ gewählt wurde.
Syntaktisch ist ∪x äquivalent zum Unique-Idiom:
((x⍳x)=⍳⍴x)/x
Also: rechtes Argument ist ein beliebiger Vektor. Das Ergebnis ist wiederum stets ein Vektor, der alle unterschiedlichen Element des rechten Arguments enthält in der Reihenfolge ihres ersten Auftretens.
Die Implementierung von UNIQUE scheint keine Performance-Vorteile im Vergleich zum Idiom zu bringen. Der Vorteil der Nutzung liegt also alleine in der bequemeren Schreibweise.
Ich halte das für ausreichend, um ∪ statt des Idioms zu nutzen.
Sowohl UNIQUE als auch das Idiom sind vergleichsweise sehr langsam für Floating Point Argumente. Das liegt wohl daran, dass hier jeweils zur Bestimmung von Gleichheit ⎕ct herangezogen werden muss.
... war die Idee UNIQUE zur APL-Grundfunktion zu erheben. Dies war schon im APL2 IUP der Fall. Aber nicht nur dort: Vor mehr als einem Jahr, mit Version 6.2, wurde der Sprachumfang von APL-Win um eine Unique-Funktion erweitert. Ich fand das und finde d
Aufgenommen: Jan 06, 14:45