Заверни всё, что возвращает mycomp, в функцию одного аргумента
(Верни из майкомп функцию одного аргумента)
что-то я никак не могу понять что не так. Сейчас я возвращаю функцию одного аргумента (вроде ничего не напутал)
(defn mycomp
[& hocs]
(let [func (apply comp
(map #(partial apply %)
(reverse hocs)))]
(fn [component] (func component))))
ну и собственно вызов уже без partial
(def hoc
(mycomp
hoc-foo
hoc-bar
hoc-xyz))
но у меня все благополучно падает с непонятным эксепшеном.А зачем тебе внутри мапить паршл аплай на все хоки?
(defn mycomp [& hocs]
(apply comp (reverse hocs)))
(defn h1 [c] (str c "+h1"))
(defn h2 [c] (str c "+h2"))
(def h (mycomp h1 h2))
(h "comp")
;;=> "comp+h1+h2"