Escuché a alguien decir que su idioma tiene una convención donde los nombres de las funciones que mutan el estado deben terminar con un signo de exclamación. Estoy tratando de escribir un código más funcional y me gusta la idea de marcar de alguna manera las funciones de acuerdo con su estado de efectos secundarios, es decir, ninguno, efectos secundarios internos, efectos secundarios externos (desconozco la terminología de fp correcta, pero se entiende la idea I esperanza).
Obviamente, es fácil para mí idear mi propio esquema de nombres, pero me preguntaba si tales esquemas / convenciones ya existen antes de irme a casa.
editar: Gracias por todas las respuestas, eso fue exactamente lo que estaba buscando y las encontré todas realmente útiles. Probablemente debería haber mencionado que estoy refactorizando algunos JavaScript antiguos, por lo que, si bien los lenguajes estáticamente escritos pueden imponer una diferencia entre el código con y sin efectos secundarios, tendré que confiar en una convención de nomenclatura autoimpuesta.
edit2: En cuanto a los mods que cierran esto como principalmente basado en opiniones, tengo que estar en desacuerdo. Me preguntaba qué convenciones eran de uso común, si es que existían, ¡esta es, por definición, una cuestión de hecho, no de opinión!
!
(no sería sintácticamente válido mutar el estado de una variable sin ese operador, si la memoria sirve ), por lo que en realidad es una convención bastante sensata en ese idioma .
set!
para mutar una variable, pero no un !
operador independiente . La convención existe porque Lisp tiene un historial de uso de símbolos en identificadores para transmitir significado debido a muy pocas restricciones sobre qué es un identificador válido. La falta de restricciones existe debido al enfoque de Lisp en macros y lenguajes específicos de dominio.
!
convención (por ejemplo, for downcase
and downcase!
), pero indica "peligro" más generalmente que "efectos secundarios".