Проблема с попытками сделать это состоит в том, что не совсем очевидно, что вы пытаетесь делать с регулярным выражением - особенно когда большая часть вашего производственного кода будет выглядеть как (map #"ab+" entries)
Регулярные выражения относятся только к шаблону , соответствующему , они не подразумевают, какое именно преобразование вы хотите от них, поэтому вам действительно следует избегать попыток вставить это в него.
Если это один раз, просто используйте
(map #(clojure.string/replace % #"ab+c*" "ab") ["ab" "ac" "abbcc"])
=> ("ab" "ac" "ab")
(Не сразу очевидно, как должен работать ваш пример? У вас меньше элементов в результате - вы фильтруете и преобразование? Как вы попадаете на элемент «abbb»?)
Если вы часто этим пользуетесь, я бы порекомендовал просто создать вспомогательную функцию в общем пространстве имен, которую вы можете использовать вместо map
попытки расширить интерфейс IFn. Поскольку создание функции является , по сути, это прямой способ расширения из IFn, но это именованная функция с оченьточная семантика, которую вы можете точно настроить.