Clojure偏右

pis*_*hio 6 clojure

我有以下功能

(defn fun [a b] (str a b))

(fun "1" "2") ;; --> "12"
Run Code Online (Sandbox Code Playgroud)

感谢(partial)我可以把它变成(fun b)并有一个固定的a

(def fun2 (partial fun "1"))

(fun2 "2") ;; --> "12"
Run Code Online (Sandbox Code Playgroud)

clojure有类似的东西(partial-right)或重新排列函数的参数的方法,以便不是固定的a我可以有一个固定的b,因此有功能(fun a)

谢谢

fl0*_*00r 0

对于您的特定示例,您可以使用 multi arity:

(defn fun 
  ([a b] (str a b))
  ([a] (str a "1")))
Run Code Online (Sandbox Code Playgroud)

  • 这并没有回答问题,只是为作者的直接示例提供了解决方案。 (3认同)