APL-программисты полагаются на симметрии булевых сканов, чтобы сократить объём кода
Symmetries in Boolean Scan
В APL все нетривиальные булевы функции встроены как примитивы, но реализация быстрых сканов для каждой из них требует огромных усилий. Автор показывает, что три симметрии — предобработка, постобработка и их комбинация — связывают таблицы истинности примитивов. Оказывается, набор ∧, <, ≠ покрывает все столбцы, поэтому быстрые реализации этих трёх примитивов позволяют вывести остальные. Статья объясняет композицию сканов и демонстрирует экономию усилий на примере разрешения кавычек.
Мы видим, что набор ∧, <, ≠ покрывает все столбцы как минимум один раз, поэтому если мы предоставим быстрые реализации каждого из них, мы сможем вывести приличные реализации остальных, просто применяя эти симметрии.