多項の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 ...)
ClojureのGoogleグループで検索したところ2008年の11月に同じようなpostがあったので、もうcontribに追加されているかと思ったがされていなかった。
Google グループ