манипуляции с кодом через интерактивное дерево для Mathematica

Этот вопрос заставил меня задуматься об интерактивном методе редактирования кода. Интересно, можно ли реализовать что-то подобное, учитывая динамические возможности Mathematica.

Рассмотрим выражение:

Text[Row[{PaddedForm[currentTime, {6, 3}, NumberSigns -> {"", ""}, NumberPadding -> {"0", "0"}]}]]

И его TreeForm :

enter image description here

Я хотел бы иметь возможность редактировать это tree напрямую, а затем преобразовать результат обратно в код Mathematica. Нужно, по крайней мере, уметь:

  • переименовывать узлы, заменять символы
  • удалять узлы, возвращать их листья на узел выше
  • переупорядочивать узлы и листья (порядок аргументов)

Я считаю, что есть языки или среды, которые специализируются на такого рода манипуляциях, и я не считаю это привлекательным, но я заинтересован в использовании такого рода интерактивного редактирования дерева для специальных целей.

8
задан Community 23 May 2017 в 10:30
поделиться