On Thu, Nov 14, 2024 at 8:52 PM Александр Коновалов a.v.konovalov87_AT_mail.ru <[email protected]> wrote:
> *«При этом фрагменты образцов в результатных выражениях линзы не могут > повторяться и должны сохранять своё взаимное расположение. Другими словами: > линза всегда возвращает поддерево того упорядоченного дерева, которое > передаётся ей в качестве аргумента. Это приводит к тому, что все термы > на выходе линзы имеют ссылки на оригинальные термы, и эти ссылки > назначаются тривиальным образом.»* > > С этого и надо было начинать, это было не очевидно. И, согласен, это > жёсткое ограничение. > > Я правильно понимаю, что относительный порядок сохраняться должен и в > Purify, и в Parse? > Purify -- линза. На неё наложено ограничение. У функции Parse никаких ограничений нет -- она может порождать новые термы, которые не входят в образцы, и располагать термы, полученные из линзы, произвольным образом, в том числе повторяя их любое количество раз. On Thu, Nov 14, 2024 at 8:52 PM Александр Коновалов a.v.konovalov87_AT_mail.ru <[email protected]> wrote: > *«4.2. Хотелось бы передавать линзам гиперпараметры, управляющие их > работой. Как их передавать, в принципе, понятно. Вот так, например: <Purify > SkipComments | Parse e.tokens>. Но не совсем понятно, как отделить > гиперпараметры от обрабатываемого дерева в реализации линзы — мешает > накладываемое ограничение.»* > > Не понял: SkipComments передаётся в Purify или в Parse? > SkipComments передаётся в Purify, потому что расположено слева от вертикальной черты.
