Но я все еще вижу, что мы все время используем require. Что мы должны использовать?
Ответ 1
Они давно устарели. Стандарт был опубликован в 1994 году. Каковы были последствия? Нет, поскольку новый стандарт не опубликован и новый стандарт не работает.
Итак, если ваши общие реализации Lisp предоставляют полезное определение и реализацию PROVIDE, REQUIRE и * MODULES *, используйте его.
Существуют и другие инструменты, которые заботятся о загрузке и создании библиотек и приложений (обычно называемых "системами" ). Часто у них есть какой-то интерфейс, поэтому (REQUIRE 'SOME-SYSTEM) загружает эту систему и так, что после загрузки этой системы она была "предоставлена".
Ответ 2
ASDF кажется довольно популярным и современным способом загрузки систем.
для загрузки foo:
(asdf: load-system: foo)
и под ABCL, Clozure CL, CMUCL, ECL и SBCL, он перехватывает cl: require. Так что cl: require кажется прекрасным.