summaryrefslogtreecommitdiff
path: root/docs/c1/2-decode.md
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2026-06-01 21:49:37 +0200
committerTaylan Kammer <taylan.kammer@gmail.com>2026-06-01 21:49:37 +0200
commit724ac8ae394675a78c2977c6e35555b210256e01 (patch)
treed7f5574b49ec71341ea8079f18a33b9c17b60221 /docs/c1/2-decode.md
parent9ce0aa66cedc985322e06db4bac130910610c113 (diff)
docs -> doc
Diffstat (limited to 'docs/c1/2-decode.md')
-rw-r--r--docs/c1/2-decode.md44
1 files changed, 0 insertions, 44 deletions
diff --git a/docs/c1/2-decode.md b/docs/c1/2-decode.md
deleted file mode 100644
index 379c74b..0000000
--- a/docs/c1/2-decode.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# Decoding
-
-A separate process called "decoding" can transform simple data structures,
-consisting of only the base datum types, into a richer set of Zisp types.
-
-For example, the decoder may turn `(#HASH ...)` into a vector, as one would
-expect a vector literal like `#(...)` to work in Scheme. Bytevector syntax
-could use a custom rune as a list prefix, like: `#u8(...)`
-
-Runes may be decoded in isolation as well, rather than transforming a list
-whose head they appear in. This can implement Boolean constants as `#true`
-and `#false` or `#t` and `#f`.
-
-The decoder recognizes `(#QUOTE ...)` to aid in implementing the traditional
-quoting mechanism of Lisp/Scheme, but with a significant difference:
-
-Traditional quote is "unhygienic" in Scheme terms. An expression such as
-`'(foo bar)` will always be read as `(quote (foo bar))` regardless of what
-lexical context it appears in, so the semantics will depend on whatever the
-identifier `quote` is bound to, meaning that the expression may end up
-evaluating to something other than the list `(foo bar)`.
-
-The Zisp decoder, which transforms not datum to datum, but object to object,
-can turn `#QUOTE` into an object which encapsulates the notion of quoting,
-which the Zisp evaluator can recognize and act upon, ensuring that an
-expression like `'(foo bar)` always turns into the list `(foo bar)`.
-
-One way to think about this, in Scheme (R6RS / syntax-case) terms, is that
-expressions like `'(foo bar)` turn directly into a syntax object when read,
-and the created syntax object begins with an identifier bound to `quote` in
-the standard library.
-
-The decoder is, of course, configurable and extensible. The transformations
-mentioned above would be performed only when it's told to decode data which
-represents Zisp code. The decoder may be given a different configuration,
-telling it to decode, for example, data which represents a different kind of
-domain-specific data, such as application settings, build system commands,
-complex data records with non-standard data types, and so on.
-
-<!--
-;; Local Variables:
-;; fill-column: 77
-;; End:
--->