Предохраняет ли 'require' в elisp / lisp перезагрузку библиотек? - PullRequest
4 голосов
/ 26 августа 2010

Для C / C ++ люди используют метод #ifdef .. #endif, чтобы предотвратить перезагрузку библиотек, а Objective-C использует импорт для того же.

Как насчет lisp / elisp? Если (require 'cl) использовался ранее, и (require' cl) где-то видел, lisp достаточно умен, чтобы не загружать его снова? Или есть ли способ предотвратить эту перезагрузку библиотек?

1 Ответ

4 голосов
/ 26 августа 2010

Нет, elisp не будет загружать его снова.Из документов (C-h f require):

"Если функция FEATURE не загружена, загрузите ее из FILENAME."

То же самое верно для ОбщееLisp :

"Функция require проверяет, присутствует ли модуль уже (используя сравнение с учетом регистра); если модуль отсутствует, требуется продолжить загрузку соответствующего файла или наборафайлов. "

...