Что касается metronome
функции из библиотеки Clojure Обертонной, все примеры, которые я изучил, кажется, использовать его как это: (Пример взят из https://github.com/overtone/overtone/wiki/Live-coding)Используя метроном в рекурсивной функции в Clojure/обертонов
(defn player [beat]
(at (metro beat) (kick))
(at (metro (+ 0.5 beat)) (c-hat))
(apply-by (metro (inc beat)) #'player (inc beat) []))
(player (metro))
(для контекста: metro - это экземпляр метронома, звуки воспроизведения и c-hat) Как вы можете видеть, рекурсия обрабатывается самой вызывающей функцией. Помимо статей об обертоне, большинство других статей Clojure рекомендуют против этого типа рекурсии и советуют использовать функцию recur для повышения эффективности. Поэтому мой вопрос: есть ли лучший способ написать вышеприведенную функцию?
Спасибо, Найл
Спасибо. Я очень удивился, поняв ваш ответ. – Niall