Я пытаюсь работать с композиционным инструментом под названием OpenMusic, который представляет собой графическую среду разработки, основанную на общем lisp, и он использует нечто, называемое «деревьями ритма». Я пытаюсь создать деревья ритмов, используя набор правил, и в ОМ это дерево должно иметь следующую структуру:
- Дерево — это список из двух элементов
- Его первый элемент — узел
- Его второй элемент — это список его дочерних элементов (которые также могут быть деревьями).
Учитывая глубину дерева n
, начальное дерево с одним узлом (1)
и правила преобразования:
- (1) -> (1 2)
- (2) -> (1)
Это должно дать:
n = 1 -> (1 (1 2))
(1)
. Это преобразуется в(1 2)
по первому правилу. Для(1 2)
нет правила преобразования, так как же получить(1 (1 2))
? Предполагается, что атомы в нем тоже трансформируются (но тогда у вас будет((1 2) (1))
)? - person jkiiski   schedule 22.04.2016