Предсказывает Общий Лисп - PullRequest
8 голосов
/ 09 мая 2011

Знаете ли вы, где я могу получить источник предиката в Common Lisp?(Содержимое предиката, если вы предпочитаете.) Например, исходный код setq, строка = и т. Д.

Спасибо!

Ответы [ 3 ]

4 голосов
/ 09 мая 2011

Среды разработки Common Lisp обычно предоставляют способ поиска определений в файле с исходным кодом.

В качестве альтернативы, FUNCTION-LAMBDA-EXPRESSION может быть в состояниивосстановить источник предиката и другие функции, , если среда Lisp настроена для сохранения определений.

Вы также можете искать в файлах lisp реализаций lisp с открытым исходным кодом.Например, в Clozure CL setq определяется в файле compiler / nx1.lisp дистрибутива.Совет заключается в том, чтобы поместить пробел перед поисковым словом, чтобы пропустить совпадения типа (setq.

1 голос
/ 10 мая 2011

Как минимум, для SBCL, SLIME может искать определения, нажимая «M-», однако вам нужно скомпилировать SBCL из источника, чтобы это работало, так как путь к определениям источника встроен в двоичный файл, и если вы используете бинарный дистрибутив, вы, вероятно, не будете иметь исходные файлы в том же месте.

0 голосов
/ 10 мая 2011

SETQ не является предикатом. Это даже не функция, поэтому вы не можете найти ее через IDE. STRING = является предикатом и функцией, поэтому работает лучше.

Вы имеете в виду "примитив?" для "предиката"?

...