Вы знаете, где я могу получить исходный код предиката в Common Lisp? (Содержимое предиката, если хотите.) Например, исходный код setq, string= и т. д.
Спасибо !
Вы знаете, где я могу получить исходный код предиката в Common Lisp? (Содержимое предиката, если хотите.) Например, исходный код setq, string= и т. д.
Спасибо !
Среды разработки Common Lisp обычно позволяют искать определения в файле с исходным кодом.
Кроме того, FUNCTION-LAMBDA-EXPRESSION
может восстановить источник предиката и других функций, если среда Lisp настроена на сохранение определений.
Вы также можете искать в lisp-файлах реализации lisp с открытым исходным кодом. Например, в Clozure CL setq
определяется в файле compiler/nx1.lisp дистрибутива. Совет: поместите пробел перед искомым словом, чтобы обойти такие совпадения, как (setq
.
SETQ
(даже если в Clozure есть определение вcompiler/nx1.lisp). Только Clozure и MCL смогли найти определение STRING=
. Возможно, вам повезет больше, если вы выйдете за рамки основных функций.
- person Terje Norderhaug; 10.05.2011
По крайней мере, для SBCL SLIME может искать определения, нажимая «M-.», однако вам нужно скомпилировать SBCL из исходного кода, чтобы это работало, так как путь к исходным определениям встроен в двоичный файл, и если вы используете бинарный дистрибутив, у вас, вероятно, не будет исходных файлов в том же месте.
SETQ не является предикатом. Это даже не функция, поэтому вы не смогли найти ее через IDE. STRING= — это предикат и функция, поэтому работает лучше.
Вы имеете в виду "примитивный"? для "предиката"?