Все,принимает имена методов Java в качестве функции арг в Clojure
Я хочу создать функцию, которая принимает символ, представляющий собой метод Java и применяет его к некоторому объекту:
(user=> (defn f [m] (. "foo" (m)))
Когда я выполняю это , я получаю результат сильно отличается от того, что я ожидал
user=> (f 'getClass)
java.lang.IllegalArgumentException: No matching method found: m for class java.lang.String (NO_SOURCE_FILE:0)
2 вопроса:
1> почему символ m называется вторым аргументом '.' вместо значения, связанного с m?
2> Как я мог бы делать то, что хочу?
+1 на макрос. Нет необходимости в eval. –