Указатель на функцию-член класса не совпадает с указателем на функцию. Член класса принимает неявный дополнительный аргумент (указатель этого ) и использует другое соглашение о вызове.
Если ваш API ожидает функцию обратного вызова без ответа, это то, что вам нужно пройти к нему.
Вы можете использовать as->
:
(let [x {:a 1 :b 2}]
(as-> x it
(assoc it :a 20)
(assoc it :b (:a it))))
В дополнение к комментарию Аконда , обратите внимание, что использование as->
может быстро запутать. Я рекомендую либо извлечь функцию верхнего уровня для этих случаев, либо попытаться использовать as->
только в ->
:
(-> something
(process-something)
(as-> $ (do-something $ (very-complicated $)))
(finish-processing))