簡體   English   中英

在輸入的遞歸中重復n次函數(沒有循環重復)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM