APL muss nicht jede boolesche Scan-Primitive einzeln optimieren
Symmetries in Boolean Scan
APL-Interpreter optimieren Primitive wie +/ in nativem Code, aber boolesche Scans sind wegen der vielen binären booleschen Funktionen aufwendig. Der Artikel zeigt, wie man mit drei Kompositionsregeln für Scans – Vorverarbeitung, Nachverarbeitung und beides kombiniert – die 10 booleschen Primitive aufeinander abbildet. Es genügt, ∧, < und ≠ schnell zu implementieren, um alle anderen durch Symmetrien abzuleiten, was Implementierungsaufwand spart.
We can see that the set ∧, <, ≠ covers all columns at least once, therefore if we provide fast implementations of each of these, we can derive decent implementations of the others by just applying these symmetries.