APL-программисты полагаются на симметрии булевых сканов, чтобы сократить объём кода

Symmetries in Boolean Scan

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

Мы видим, что набор ∧, <, ≠ покрывает все столбцы как минимум один раз, поэтому если мы предоставим быстрые реализации каждого из них, мы сможем вывести приличные реализации остальных, просто применяя эти симметрии.

Ещё за этот день

2026-10-16