En Common Lisp, hay una convención de nombrar constantes con signos más (+my-constant+
), y en el esquema, mediante un prefijo con un signo de dólar ($my-constant
); ver this page. Cualquier convención de este tipo entra en conflicto con los estándares oficiales de codificación Clojure, vinculados en otras respuestas, pero tal vez sería razonable querer distinguir vars regulares de los definidos con el atributo :const
.
Creo que hay una ventaja para dar a las variables no funcionales de cualquier tipo algún tipo de característica distintiva. Suponga que, aparte de las variables definidas para contener funciones, normalmente solo utiliza nombres locales definidos por parámetros de función, let
, etc. Si de todos modos define ocasionalmente una variable no funcional usando def
, cuando su nombre aparece en una definición de función en el mismo archivo, se ve a simple vista como una variable local. Si la función es compleja, puede pasar varios segundos buscando la definición del nombre dentro de la función. Agregar una característica distintiva como orejeras o signos más o mayúsculas, según corresponda al uso de la variable, hace que sea obvio que la definición de la variable está en otro lugar.
Además, hay buenas razones para dar constantes especiales como pi un nombre especial, por lo que nadie tiene que preguntarse si pi
significa, por ejemplo, "índice de impresión", o la i-ésima pizza, o "interfaz preservada" ". Por supuesto, I creo que esas variables deberían tener nombres más informativos, pero muchas personas usan nombres crípticos de variables cortas y termino leyendo su código. No debería tener que preguntarme si pi
significa pi, por lo que algo como PI
podría tener sentido. Nadie pensaría que es una corrida de la variable del molino en Clojure.
También recuerde que, sea lo que sea que termine por nombrarlo, puede que quiera darle metadatos const: '(def ^: const pi 3.14)' – jemmons
Prefiero simplemente asumir que todo es una constante a menos que se especifique lo contrario, como https: //github.com/bbatsov/clojure-style-guide aconseja. – mk12
parece que sería útil tener una forma de hacer algo constante para usos en cosas como declaraciones de casos, ¿no? – leeor