См. документ clojure.string/join
.
clojure.string/join
([coll] [separator coll])
Returns a string of all elements in coll, as returned by (seq coll),
separated by an optional separator.
когда только один аргумент предусмотрен для clojure.string/join
, эта функция считает свой аргумент как сбор, так:
user=> (clojure.string/join ",")
","
Далее см РОУ partial
.
clojure.core/partial
([f] [f arg1] [f arg1 arg2] [f arg1 arg2 arg3] [f arg1 arg2 arg3 & more])
Takes a function f and fewer than the normal arguments to f, and
returns a fn that takes a variable number of additional args. When
called, the returned function calls f with args + additional args.
Когда только один аргумент предоставлен, partial
возвращает свой аргумент.
user=> (partial (clojure.string/join ","))
","
Попробуйте это:
user=> (def partial-join (partial clojure.string/join ","))
#'user/partial-join
user=> (partial-join ["a" "b"])
"a,b"
Вы добавляете дополнительный слой круглых скобок, который не должен присутствовать при использовании частичного. – johnbakers