A Lisp variant for customizing [[Emacs]]. [My Emacs init file](https://www.const.no/init/) is written in [[Org-mode]] and *tangled* to Elisp by using its [[Literate programming]] capabilities. In [[Literate programming]] parlance, documents on creation are _woven_ with code and documentation, and on export, the code is tangled for execution by a computer. Org facilitates weaving and tangling for producing, maintaining, sharing, and exporting literate programming documents. Org provides extensive customization options for extracting source code. > If our code is just a bunch of arrays, we can _do stuff_ to the code. We could write code that generates code! Here is an example of a associative list (like a [[Python#Dictionaries|dictionary in Python]] and [[Golang#Maps|map in Go]]): ```elisp ((pine . cones) (oak . acorns) (maple . seeds)) ``` Read [An Intuition for Lisp Syntax](https://stopa.io/post/265). Some nuggets: > Having your code represented as data doesn’t just allow you to manipulate your code with ease. It also allows your editor to do it too. > All of a sudden, instead of editing characters, you are editing the _structure_ of your code. This is called [[Structural editing]] (see [[Abstract syntax tree|AST]]). It can help you move with the speed of a potter, and is one of the many wins you’ll get when your code is data. > How could we make manipulating code as intuitive as manipulating _data_ within _our code_? The answer sprouts out: Make the code data! What an exciting conclusion. If we care about manipulating source code, we glide into the answer: the code _must_ be data. In computer programming, [[Symbolic programming]] is a programming paradigm in which the program can manipulate its own formulas and program components as if they were plain data. > Lisp is _discovered_. It’s like the solution to an optimization problem: if you care about manipulating code, you gravitate towards discovering Lisp. There’s something awe-inspiring about using a tool that’s discovered: who knows, alien life-forms could use Lisp! Read [The Nature of Lisp](https://www.defmacro.org/ramblings/lisp.html) after. See the discussion at [An Intuition for Lisp Syntax](https://news.ycombinator.com/item?id=24892297). Maybe even [You already use Lisp syntax](https://blog.danieljanus.pl/2014/05/20/you-already-use-lisp-syntax/).