On Thu, Nov 14, 2024 at 5:05 PM Александр Коновалов a.v.konovalov87_AT_mail.ru <[email protected]> wrote:
> Сергей Юрьевич, такое совершенно непонятно, как реализовывать, плюс есть > неочевидности по семантике (что для смутного наброска приемлемо). > Но выглядит красиво. > Я-то понимаю, как такое реализовать: добавляем каждому терму в представлении объектного выражения в памяти рантайма указатель на терм, упрощением которого он является, и при выходе из "линзированной" функции заменяем все упрощённые термы на их оригиналы. Как разобраться с семантикой, чтобы работал этот пример и подобные ему простые примеры, я тоже приблизительно представляю. Но, на мой вкус, добавление этой фичи ради таких простых вариантов использования не имеет смысла, т.е. её надо как-то развить. А вот при попытке её развить и вылезают главные неприятности с семантикой, и я так в своё время и не смог ничего путного придумать.
