Подтвердить что ты не робот

Что означает двойное (-) соглашение в именах функций в Emacs Lisp

Я читал несколько пакетов Emacs Lisp и встретил соглашение о некоторых объявляемых функциях - после префикса библиотеки, например:

(defun eproject--combine-regexps (regexp-list)

Мне интересно, работает ли это соглашение для объявления "private", но до сих пор я ничего не нашел в рекомендациях Emacs Coding.

4b9b3361

Ответ 1

В Emacs нет поддержки пространств имен, пакетов, библиотек или модулей. Поэтому источники Emacs используют foo- как префикс для библиотеки foo, а в некоторых случаях foo-- используется для привязок, которые должны быть внутренними.

Ответ 2

В Emacs действительно нет такой вещи, как "внутренняя". Но да, некоторые программисты приняли это соглашение, чтобы указать на вещи, которые являются более внутренними, - в сущности, это означает, что разработчики будут меньше (или нет) колебаний менять их. Это способ дать пользователям кода знать об этой возможной волатильности.