多項のiterate(Clojure)

Clojureのiterateは2項間漸化式しか扱えないので、多項間漸化式を扱えるように拡張できないかと考えた。

(defn myIterate [f & arg]
  (map first
       (iterate (fn [%] `(~@(rest %) ~(apply f %)))
		arg)))

(myIterate + 0 1) ;=> (0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 ...)

ClojureGoogleグループで検索したところ2008年の11月に同じようなpostがあったので、もうcontribに追加されているかと思ったがされていなかった。
Google グループ