aux ... +Aux
Всегда чему-то учусь!
+Aux - префиксный класс, поддерживающий вспомогательные ключи для +relation, в дополнение к индексам +Ref или +Idx. Ожидает список вспомогательных атрибутов того же объекта и объединяет все ключи в этом порядке в один ключ индекса.
(rel nr (+Ref +Number)) # Normal, non-unique index
(rel nm (+Aux +Ref +String) (nr txt)) # Combined name/number/text index
(rel
aux - возвращает объект базы данных класса cls, где значение для sym соответствует any и следующим аргументам. sym, cls и hook должны указывать дерево для cls или один из его суперклассов для отношения со вспомогательными ключами. Для доступа с несколькими ключами aux похож на db, но быстрее, поскольку он может использовать доступ к одному дереву.
(aux 'sym 'cls ['hook] 'any ..) -> sym
(class +PS +Entity)
(rel par (+Dep +Joint) (sup) ps (+Part)) # Part
(rel sup (+Aux +Ref +Link) (par) NIL (+Supp)) # Supplier
...
(aux 'sup '+PS # Access PS object
(db 'nr '+Supp 1234)
(db 'nr '+Part 5678) )
https://picolisp.tiddlyhost.com/#aux
P.S. Смотрите Pilog solve and the +Aux relation