Clojure 将函数作为参数传递,并插入另一个参数

Clojure 将函数作为参数传递,并插入另一个参数,clojure,Clojure,我正在尝试编写一个容器函数,它接受一个函数名、它的参数,并用一个附加参数调用该函数 我很肯定我做错了,但这是我到目前为止得到的 (defn get-dyn [& args] ((first args) "some" (rest args))) 第一个参数是函数名,这个函数可以有任意数量的参数,所以我想我必须接受可选参数? 我需要将一个公共参数“some”注入到通过该函数调用的所有函数中 所以 等等。。我希望这相当于 (str "some" 3 4) (str "so

我正在尝试编写一个容器函数,它接受一个函数名、它的参数,并用一个附加参数调用该函数

我很肯定我做错了,但这是我到目前为止得到的

    (defn get-dyn [& args]
      ((first args) "some" (rest args)))
第一个参数是函数名,这个函数可以有任意数量的参数,所以我想我必须接受可选参数? 我需要将一个公共参数
“some”
注入到通过该函数调用的所有函数中

所以

等等。。我希望这相当于

(str "some" 3 4)
(str "some" 32 "wilhelm")
除此之外,
(rest args)
返回一个集合,因此它不会以这种方式工作

我试着用
partial
来做,但没有成功

有办法解决这个问题吗?还是我更擅长使用工业函数

您可以使用apply

user> (defn get-dyn [f & args]
        (apply f "some" args))
#'user/get-dyn
user> (get-dyn str 1 2)
"some12"
user> (get-dyn str " " 1 " " 2)
"some 1 2"
你可以使用apply

user> (defn get-dyn [f & args]
        (apply f "some" args))
#'user/get-dyn
user> (get-dyn str 1 2)
"some12"
user> (get-dyn str " " 1 " " 2)
"some 1 2"