parinfer-mode is a really fun way to edit lisp code: https://github.com/DogLooksGood/parinfer-mode
Things like sexp convolute are just unindent, swap lines, reindent. Convolute is much easier to show than describe:
(when foo
(let (bar)
(baz)))
to:
(let (bar)
(when foo
(baz)))
Related Posts
It's odd how lazy evaluation is generally seen as a niche design choice, yet the vast majority of languages treat `foo() || bar()` as short-circuiting.
When a tool supports both regular expressions and literal strings, which should be the default?
If you default to regex, users can match more strings than they realise (e.g. `foo.txt`) or less (e.g. `foo(bar)`).
I typically see regex as the default, but I prefer the opposite.
I'm trying to decide the best voice for PL documentation.
Passive: "`let` can be used with destructuring."
Reader focused: "You can use `let` with destructuring."
Describing the PL: "FooLang supports destructuring with `let`."
Anyone have opinions or best practices?