[英]repeat function n times in recursion on input (without loop recur)
我知道我可以用循環和重復來解決我的問題,但它似乎是一個簡單的(常見的?)操作,我想知道在clojure中沒有單個函數或者更簡潔的方法然后循環/重復來解決這個問題。 我搜索了它但卻找不到東西。
我正在尋找的功能如下。
(the-function n input some-function)
其中n是在輸入上重新調用some-function的時間。
一個簡單的例子是:
(the-function 3 1 (fn [x] (+ x 1)))
=> 4
在Clojure中有類似的東西嗎?
最好的祝福
你想要的基本上是iterate
。 它將生成函數重復應用於種子輸入的無限序列。 所以要復制你在這里描述的行為,你會寫:
(nth (iterate some-function input) n)
嘗試這個:
(defn your-iterate-fn [times init-param the-fn]
(last (take (inc times) (iterate the-fn init-param))))
(your-iterate-fn 3 1 (fn [x] (+ x 1)))
==> 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.