summary refs log tree commit diff
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2022-11-01 23:05:22 +0100
committerLeah Neukirchen <leah@vuxu.org>2022-11-01 23:05:22 +0100
commit5a09079a02861102c1c085a51d3516abdc20a006 (patch)
tree6964b781d4c6f35fbc8b164e939105c77d133415
parent7288e28b8179b4e9e96bff50e31b88b8cab2edc9 (diff)
downloadmew-5a09079a02861102c1c085a51d3516abdc20a006.tar.gz
mew-5a09079a02861102c1c085a51d3516abdc20a006.tar.xz
mew-5a09079a02861102c1c085a51d3516abdc20a006.zip
add some design goals
-rw-r--r--mew.svnwiki28
1 files changed, 28 insertions, 0 deletions
diff --git a/mew.svnwiki b/mew.svnwiki
index 8cad5c3..1858fdd 100644
--- a/mew.svnwiki
+++ b/mew.svnwiki
@@ -2,6 +2,34 @@ Mew is a library targetting R5RS/R7RS scheme, which provides some
 conveniences inspired from Goo, Clojure and Arc to allow writing more
 compact code.
 
+
+== Design goals
+
+Mew, in its current iteration, is designed as a Scheme library.  Even
+though a program written in Mew will look quite different to a plain
+Scheme program, code is compatible, and Scheme code can generally live
+inside a Mew program, and Mew can load Scheme libraries.  Extra care
+has been taken to not reuse identifiers found in important SRFIs.
+
+Mew code is tight code, commonly used Mew identifiers are short.
+
+Mew uses a few features of R7RS internally, but does not require using
+R7RS.
+
+Mew targets Chicken Scheme currently but should be easy to port to
+other Scheme implementations.
+
+Mew is multi-paradigm: it simplifies both writing imperative and
+functional code.
+
+Mew uses SRFI-158 (Generators and Accumulators) for generic functions
+on enumerable structures.
+
+Mew generally uses {{equal?}} as equality predicate.
+
+Mew never mutates lists.
+
+
 == Re-Exports
 
 Mew re-exports