Clojure: есть ли документы для функций Java, например. Математика/опыт?

Я ожидал, что (doc Math/exp) даст мне что-то, но это не так. Конечно, это не функция Clojure, но все же должен быть какой-то способ добраться до документации.

Самое близкое, что я могу получить, это (javadoc Math). Я бы предпочел фактический документ с этой страницы в виде строки:

static double exp(double a)
Returns Euler's number e raised to the power of a double value.

UPD: подпись по отражению

Вот как я могу получить подпись:

(.toString (first (filter #(= (.getName %) "exp") (.getMethods Math))))

Я надеюсь на аналогичный способ получить документ.

UPD: нет документа по отражению

Согласно вопросу Как читать комментарии Javadoc путем отражения?, это невозможно. чтобы получить документ путем отражения. Интересно, можно ли повторно использовать часть кода Eclipse, который дает доступ к документам.


person abo-abo    schedule 31.01.2014    source источник
comment
Ну так напиши эту функцию! У вас все под рукой.   -  person Chiron    schedule 31.01.2014
comment
ха-ха. Без сомнения, он доступен для записи, но даже в лучшем случае у меня есть хак, который должен подключаться к Интернету и анализировать html, чтобы получить документ, вместо чего-то надежного, доступного в автономном режиме и должным образом проиндексированного.   -  person abo-abo    schedule 31.01.2014
comment
Вы также можете установить исходные коды JDK и проанализировать их комментарии к документам. Думать об этом, на самом деле не должно быть слишком сложно. Используйте имя класса, чтобы найти файл, а затем прибегните к небольшому трюку с регулярным выражением, чтобы найти функцию и извлечь /** (.+?) */.   -  person lunaryorn    schedule 31.01.2014
comment
Хорошо, это лучше, чем интернет, но все же. Я не эксперт по Java, но можно ли получить документ через самоанализ/рефлексию Java?   -  person abo-abo    schedule 31.01.2014
comment
См. stackoverflow.com/questions/ 8504013/   -  person Dmitry    schedule 01.02.2014
comment
Видел это. Это уже в вопросе :)   -  person abo-abo    schedule 01.02.2014


Ответы (1)


Просто начните вводить имя метода, который вы собираетесь использовать:

(java.lang.Math/exp)

и, наведя курсор на "exp", нажмите M-.

Дополнительные горячие клавиши см. в документации CIDER https://cider.readthedocs.io/en/latest/interactive_programming/

Если вы также установите «режим компании», то поиск класса, который вы собираетесь использовать, также станет проще с помощью автозаполнения.

person Istvan Devai    schedule 29.06.2017