Size: a a a

Clojure — русскоговорящее сообщество

2020 January 09

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ETL
Сейчас буду тестировать, благодарю)  да здравствует chat driven development )))
`(comp f2 f1)` возвращает одноарную функцию, которую нужно позвать или передать
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
ETL
У меня вопрос, немножечко из серии "товарищ прапорщик, зарядите мне автомат, пожалуйста", по поводу композиции функций. Есть 1-арная f1, принимает строку в качестве аргумента. В результате применения функции к строке мы получаем новую строку. Эту строку я желаю передать f2 (которая тоже 1-арная) . Да, я знаю, что есть оператор ->, но мне хочется все же сделать это через comp. Можно попросить схематически описать #(comp (f2 ) f1  %), как происходит композиция в этом случае?
#((comp f2 f1) %)
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
(f2 (f1 x))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Anton Chikin
#((comp f2 f1) %)
что ж ты творишь... 😊
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Sergey Trofimov
что ж ты творишь... 😊
погоди что не так?
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
ю.дъщ
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Anton Chikin
погоди что не так?
то же самое, только с созданием новой анонимной функции
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
#(identity %) 😊
источник

E

ETL in Clojure — русскоговорящее сообщество
А если f1 и f2 3-арные, но значения 2 из 3 аргументов задаются самой функцией, как быть с %, если он является первым аргументом в f1, а результат применения f1 - первый аргументв в  f2?)
источник

IP

Ilya Pomaskin in Clojure — русскоговорящее сообщество
->
источник

IP

Ilya Pomaskin in Clojure — русскоговорящее сообщество
Ну или анонимные функции и %
источник

E

ETL in Clojure — русскоговорящее сообщество
Ilya Pomaskin
Ну или анонимные функции и %
Вот меня это интересует, как это через comp реализовать,  я уже где только partial и apply не втыкал, но результат стабильно object )))
источник

D

Dos in Clojure — русскоговорящее сообщество
сделать 3-м и partial
источник

IP

Ilya Pomaskin in Clojure — русскоговорящее сообщество
(comp
#(fn-name % second-arg third-arg)
...
)
источник

D

Dos in Clojure — русскоговорящее сообщество
или же
as->
источник

IP

Ilya Pomaskin in Clojure — русскоговорящее сообщество
Dos
или же
as->
Да, пожалуй так читаемее будет
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ETL
Вот меня это интересует, как это через comp реализовать,  я уже где только partial и apply не втыкал, но результат стабильно object )))
Код в студию
источник

E

ETL in Clojure — русскоговорящее сообщество
Sergey Trofimov
Код в студию
(#(comp
   (partial clojure.string/replace #"(['re]{3}$)" " are")  clojure.string/replace % #"(['m]{2}$)"  " am")
 "They're I'm")
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ETL
(#(comp
   (partial clojure.string/replace #"(['re]{3}$)" " are")  clojure.string/replace % #"(['m]{2}$)"  " am")
 "They're I'm")
И какие две функции ты хочешь скомбинировать?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
И какие две функции ты хочешь скомбинировать?
Напиши без comp
источник