diff --git a/docs/modules/ROOT/pages/zexp.adoc b/docs/modules/ROOT/pages/zexp.adoc deleted file mode 100644 index b073696..0000000 --- a/docs/modules/ROOT/pages/zexp.adoc +++ /dev/null @@ -1,31 +0,0 @@ -= zexps - -zexps, similar to g-expressions in Guix, are a way to generate -S-expressions that are tagged with store paths. The syntax in Zilch is inspired -by it, but has been developed separately. - -A zexp is used similarly to a ``quasiquote``d value in Scheme, but has an extra type -of unquoting, called `zexp-unquote`, which unquotes a value such as a `++++` -or another `zexp`. - -Each `zexp` keeps track of the derivation outputs and store files it depends on, -similarly to how string context works in Nix: - -[,scheme] ----- -#~(foo bar #$baz) -; is identical to: -(zexp (foo bar (zexp-unquote baz))) ----- - -When a `zexp-unquote` (or its reader syntax, `#$`) is encountered, the value -contained in the `zexp` (or compatible object) is used as-is, with no -evaluation. It is possible to mix and match `zexp-unquote` with `unquote`, -allowing building e.g. dynamic strings from zexps. `zexp-unquote` is always -evaluated before `unquote` is. - -[,scheme] ----- -(define world ...) -(define hello #~("hello" ,(string-append "very " "cute" #$world))) -----