|

|

Сегодня весь день промучился с одной кажущейся простой функцией - разложить сложное дерево на простые. Типа в терминах деревьев Лиспа (списков) из (a ((b c) d) e) получить (a (id1 d) e) и список пар типа (id1 . (b c)). Здесь корнем дерева считается голова списка, последующие - детьми.
Оказывается, не такая простая функция, если её выписывать только в терминах классического функционального программирования.
В прошлый раз писал, собственно, для списков Схемы / Лиспа. Сегодня - для структуры "корневое дерево". И уже все функции высшего порядка готовы, двойные свёртки, однако, и всё равно. Весь день промудохался, но не напрасно, чувствую, не напрасно.
|
|