От http://www.braveclojure.com/functional-programming/ следующий код обрезает пробелы и заменяет «lol» на «LOL».Clojure: как передать параметры при уменьшении функций
(require '[clojure.string :as s])
(defn clean
[text]
(s/replace (s/trim text) #"lol" "LOL"))
(clean "My boa constrictor is so sassy lol! ")
; => "My boa constrictor is so sassy LOL!"
Теперь, согласно веб-сайту, приведенный ниже код, который сокращает функции, эквивалентен тому, что мы имеем выше.
(defn clean
[text]
(reduce (fn [string string-fn] (string-fn string))
[s/trim #(s/replace % #"lol" "LOL")]))
Вопрос: Я не понимаю, как параметр text
получить передается в анонимную функцию в функцию уменьшения. Как написать аналогичный код, который явно передает параметр text
в анонимную функцию внутри функции уменьшения?
Это кажется неправильным. – ntalbs
@ntalbs это сработает, если 'text' был arg до вектора funtions. – noisesmith
Я дал несколько описаний на вопрос. Пожалуйста, не спускайте вниз. @noisesmith Я попробовал добавить текст перед вектором функций. Это не сработало – mynameisJEFF