Ich hörte jemanden sagen, dass seine Sprache eine Konvention hat, bei der die Namen von Funktionen, die den Zustand mutieren, mit einem Ausrufezeichen enden müssen. Ich versuche, mehr Funktionscode zu schreiben, und ich mag die Idee, Funktionen irgendwie nach ihrem Nebenwirkungsstatus zu markieren, dh keine, innere Nebenwirkungen, äußere Nebenwirkungen (ich kenne die richtige fp-Terminologie nicht, aber Sie haben die Idee, dass ich Hoffnung).
Natürlich fällt es mir leicht, ein eigenes Namensschema zu entwickeln, aber ich habe mich gefragt, ob solche Schemata / Konventionen bereits existieren, bevor ich eines selbst backe.
edit: Danke für all die Antworten, genau das war es, wonach ich gesucht habe und ich fand sie alle wirklich nützlich. Ich hätte wahrscheinlich erwähnen sollen, dass ich ein altes Javascript umgestalte, damit statisch typisierte Sprachen möglicherweise einen Unterschied zwischen Code mit und ohne Nebenwirkungen erzwingen können. Ich muss mich jedoch auf eine selbst auferlegte Namenskonvention verlassen.
edit2: Was die Mods betrifft, die dies als primär meinungsbasiert schließen, muss ich nicht zustimmen. Ich habe gefragt, welche Konventionen, wenn überhaupt, allgemein verwendet werden - dies ist nach jedermanns Definition eine Tatsachenfrage, keine Meinung!
!
(es wäre syntaktisch nicht gültig, den Status einer Variablen ohne diesen Operator zu mutieren, wenn Speicher dient ), also ist es tatsächlich eine ziemlich vernünftige Konvention in dieser Sprache .
set!
zum Mutieren einer Variablen, aber keinen eigenständigen !
Operator. Die Konvention existiert, weil Lisp in der Vergangenheit Symbole in Bezeichnern verwendet hat, um Bedeutung zu vermitteln, da nur sehr wenige Einschränkungen hinsichtlich der Gültigkeit eines gültigen Bezeichners bestehen. Das Fehlen von Einschränkungen besteht darin, dass sich Lisp auf Makros und domänenspezifische Sprachen konzentriert.
!
Konvention (z. B. für downcase
und downcase!
), zeigt jedoch allgemeiner "Gefahr" als "Nebenwirkungen" an.