Clojure Overtone ライブラリの関数については、metronome私が調べたすべての例で次のように使用されているようです: (例はhttps://github.com/overtone/overtone/wiki/Live-codingから取得)
(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 はメトロノームのインスタンスです。kick と c-hat はサウンドを再生します) ご覧のとおり、再帰は関数自体を呼び出すことによって処理されます。倍音に関する記事は別として、Clojure の他のほとんどの記事では、このタイプの再帰を推奨せず、効率を高めるために recur 関数を使用することを推奨しています。だから私の質問は:上記の関数を書くより良い方法はありますか?
ありがとう、ナイル