在输入的递归中重复n次函数(没有循环重复)

use*_*011 2 clojure

我知道我可以用循环和重复来解决我的问题,但它似乎是一个简单的(常见的?)操作,我想知道在clojure中没有单个函数或者更简洁的方法然后循环/重复来解决这个问题.我搜索了它但却找不到东西.

我正在寻找的功能如下.

(the-function n input some-function)
Run Code Online (Sandbox Code Playgroud)

其中n是在输入上重新调用some-function的时间.

一个简单的例子是:

(the-function 3 1 (fn [x] (+ x 1)))
=> 4 
Run Code Online (Sandbox Code Playgroud)

在Clojure中有类似的东西吗?

最好的祝福

Chu*_*uck 9

你想要的基本上是什么iterate.它将生成函数重复应用于种子输入的无限序列.所以要复制你在这里描述的行为,你会写:

(nth (iterate some-function input) n)
Run Code Online (Sandbox Code Playgroud)