(zettel (meta (back "00001012000000 00001012920516 00001012920525 00001012921000 00001012931000") (backward "00001012000000 00001012920516 00001012920525 00001012921000 00001012931000") (box-number "1") (created "20230403145644") (forward "00001012930500") (modified "20230403154010") (published "20230403154010") (role "manual") (syntax "zmk") (tags "#manual #reference #zettelstore") (title "Symbolic Expression")) (rights 4) (encoding "") (content "A symbolic expression (also called __s-expression__) is a notation of a list-based tree.\nInner nodes are lists of arbitrary length, outer nodes are primitive values (also called __atoms__) or the empty list.\n\nA symbolic expression is either\n* a primitive value (__atom__), or\n* a list of the form __(E,,1,, E,,2,, … E,,n,,)__, where __E,,i,,__ is itself a symbolic expression, separated by space characters.\n\nAn atom is a number, a string, or a symbol.\n\nSymbolic expressions are used in programming languages like LISP or Scheme, where they denote both data structures and the program itself.\nThis allows a LISP or Scheme program to process LISP or Scheme programs.\nThat property is also used within Zettelstore.\n\nSymbolic expressions are relatively easy to read, to parse, and to process.\n\n=== See also\n* [[Syntax|00001012930500]] of symbolic expressions in the Zettelstore\n* [[S-expression @ Wikipedia|https://en.wikipedia.org/wiki/S-expression]]"))