tvl-depot/users/wpcarro/emacs/elisp-conventions.md
Vincent Ambo 019f8fd211 subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro
git-subtree-mainline: 464bbcb15c
git-subtree-split: 24f5a642af
Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
2021-12-14 02:15:47 +03:00

842 B

Elisp Conventions

Some of this aligns with existing style guides. Some of it does not.

In general, prefer functions with fixed arities instead of variadic alternatives.

  • Namespace functions with namespace/function-name
  • Use ensure, assert, refute whenever possible.
  • When talking about encoding and decoding, let's use the words "encoding" and "decoding" rather than the myriad of other variants that appear like:
    • marshalling and unmarshalling
    • parse and deparse, serialize, stringify
    • unpickle and pickle (Python)
    • from-string and to-string
    • TODO: Add more examples of these; there should be close to a dozen.
  • Annotate assertions with ! endings.
  • Prefer the Scheme style of predicate?
  • Variadic functions should encode this by appending * onto their name. E.g. maybe/nil?*