S-Expression
Noun · Development
Definitions
Short for symbolic expression, the parenthesised notation for nested lists introduced with Lisp by John McCarthy around 1958. An s-expression is either an atom, such as a number or symbol, or a list of s-expressions in parentheses, so (+ 1 (* 2 3)) is a list whose first element names an operation. McCarthy originally intended a more conventional surface syntax, M-expressions, but programmers found writing s-expressions directly convenient and the plan was dropped. Because Lisp programs are themselves s-expressions, code and data share one representation, a property called homoiconicity, which makes it easy to write macros that transform code as ordinary list data. Internally, lists are built from cons cells, and a dotted pair such as (a . b) exposes that structure. The notation survives well beyond Lisp dialects such as Scheme, Clojure, and Emacs Lisp: the WebAssembly text format and the KiCad file format both use s-expressions.
In plain English: The parentheses-heavy way Lisp languages write everything — code, data, you name it — as nested lists inside parentheses.
Example: "In Clojure, (map inc [1 2 3]) is an s-expression that increments every element."