Я полностью знаком с CL, и я хотел бы узнать, как читать строки документации и получать другую справочную информацию из REPL. Что-то вроде help(symbol)
в Python или symbol?
в iPython, или :t
и :i
в Haskell GHCi.
Итак, учитывая имя символа, я хотел бы знать:
- какое значение оно связано, если оно есть (функция, переменная, вообще нет)
- Если это функция или макрос, то каковы его позиционные аргументы
- если у него есть docstring, покажите его
- какой пакет или файл он исходит или когда он был определен
Я обнаружил, что есть (documentation '_symbol_ '_type_)
, но это не совсем то, что мне нужно. Мне нужно знать тип значения, которому привязан символ ('function
, 'variable
, 'compiler-macro
и т.д.), Прежде чем я смогу использовать documentation
. Затем он возвращает только докструмент, он может отсутствовать или недостаточно для использования символа.
Например, в Lisp помощь для mapcar
не очень полезна (CLisp REPL):
> (documentation 'mapcar 'function)
NIL
Я бы хотел увидеть что-то вроде этого:
>>> map?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in function map>
Namespace: Python builtin
Docstring:
map(function, sequence[, sequence, ...]) -> list
Return a list of the results of applying the function to the items of
the argument sequence(s). If more than one sequence is given, the
function is called with an argument list consisting of the corresponding
item of each sequence, substituting None for missing values when not all
sequences have the same length. If the function is None, return a list of
the items of the sequence (or a list of tuples if more than one sequence).