我有以下功能
(defn fun [a b] (str a b))
(fun "1" "2") ;; --> "12"
感谢(partial)
我可以将其转换为(fun b)
并有一个固定的a
(def fun2 (partial fun "1"))
(fun2 "2") ;; --> "12"
clojure是否有(partial-right)
之类的东西或者重新排列函数参数的方法,这样我就可以得到一个固定的a
而不是固定的b
因此具有函数(fun a)
?
由于
答案 0 :(得分:3)
(defn partial-right [f & args1]
(fn [& args2]
(apply f (concat args2 args1))))
但问问自己......为什么这不是标准库的一部分?也许是其他人这种方式徘徊而且结果很糟糕?
答案 1 :(得分:0)
对于您的特定示例,您可以选择多种方式:
(defn fun
([a b] (str a b))
([a] (str a "1")))