В Common Lisp существует соглашение о присвоении имен константам со знаком плюс (+my-constant+
), а в Схеме - префиксу со знаком доллара ($my-constant
);см эту страницу .Любое такое соглашение противоречит официальным стандартам кодирования Clojure, связанным в других ответах, но, возможно, было бы разумно отличать обычные переменные от тех, которые определены с атрибутом :const
.
Я думаю, что есть преимуществопридание нефункциональным переменным любого рода какой-либо отличительной особенностиПредположим, что помимо переменных, определенных для хранения функций, вы обычно используете только локальные имена, определенные параметрами функции, let
и т. Д. Если вы все же время от времени определяете нефункциональную переменную, используя def
, то когда ее имя появляется в функцииопределение в том же файле, это выглядит на глаз как локальная переменная.Если функция сложная, вы можете потратить несколько секунд на поиск определения имени внутри функции.Добавление отличительного признака, такого как вкладыши, или знаки плюс, или все заглавные буквы, в зависимости от использования переменной, делает очевидным, что определение переменной находится где-то еще.
Кроме того, есть веские причины давать специальные константы, такие как piспециальное имя, поэтому никто не задается вопросом, означает ли pi
, скажем, «print-index», или i-тую пиццу, или «сохраненный интерфейс».Конечно, Я думаю, что эти переменные должны иметь более информативные имена, но многие люди используют загадочные, короткие имена переменных, и в итоге я читаю их код.Я не должен задаваться вопросом, означает ли pi
пи, поэтому что-то вроде PI
может иметь смысл.Никто бы не подумал, что это запуск переменной mill в Clojure.