Я погуглил по поводу декларативного программирования на Python, но нашел какую-то ерунду. Почему-то под декларативным программированиям авторы статей понимают векторизацию кода.
Меня с декларативным программированием именно в этом смысле познакомила
глава 9 книги
Higher-Order Perl by Mark Jason Dominus. Конечно, не Python, но язык родственный. Возможно, Вас на что-нибудь вдохновит.
Комп в некотором графе ищет кратчайший путь преобразований и все сам делает: возможно ему придется что-то проинтегрировать, решить какое-то уравнение, и только потом построить график.
Возможно, это легче сделать в языках с развитой системой типов, вроде Haskell, но если Вы сами напишете решатель для поиска кратчайшего пути в графе, о котором говорите, ничего невозможного для Python в поставленной задаче нет. Синтаксис может оказаться не очень удобным. По идее, достаточно иметь базовый класс, в котором достаточно умный метод для приведения данного объекта к объекту другого класса (с решателем кратчайшего пути в графе классов и этим всем), и наследовать от него все высокоуровневые объекты. Тогда любое из этих декларативных действий можно будет свести к чему-то вроде
myPlot = myEquation.transform_into(Plot2D) (где
Plot2D - это класс), а остальное время работать с объектами нужных классов так, как удобно с точки зрения самих этих классов.