Я совершенно новичок в CL, и я хотел бы научиться читать строки документации и получать другую справочную информацию из REPL.Что-то вроде help(symbol)
в Python, или symbol?
в iPython, или :t
и :i
в GHCi на Haskell.
Итак, учитывая имя символа, я бы хотел знать:
- с каким значением оно связано, если оно есть (функция, переменная, вообще не существует)
- если это функция или макрос, то каковы ее значения?позиционные аргументы
- если у него есть строка документации, покажите ему
- из какого пакета или файла он поступает или когда он был определен
Я обнаружил, что (documentation '_symbol_ '_type_)
, но это не совсем то, что мне нужно.Мне нужно знать тип значения, к которому привязан символ ('function
, 'variable
, 'compiler-macro
и т. Д.), Прежде чем я смогу использовать documentation
.Затем он возвращает только строку документации, возможно, он отсутствует или недостаточен для использования символа.
Например, в Лиспе помощь для mapcar
не очень полезна (CLLp's 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).