summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2023-02-18 22:36:41 -0800
committerKai Stevenson <kai@kaistevenson.com>2023-02-18 22:36:41 -0800
commite8df5cd395569ddd944900ec7f22236db491b5a8 (patch)
tree7ecd61fda2b0fa9b0b1739d88050054ed699dd5b
parent817eeb9ef0e32abce06564d1d5aa01eca6c501ef (diff)
updated docs
-rw-r--r--README3
-rw-r--r--doc/internal_functions_dictionary2
2 files changed, 5 insertions, 0 deletions
diff --git a/README b/README
index 14fef6d..1b06408 100644
--- a/README
+++ b/README
@@ -11,5 +11,8 @@ A key is either a store()'d symbol, or an internal function. Internal functions
have an implementation defined by eval.c, whereas keys are simply pointers to other
symbols, as stored in a hashtable.
+ref() returns a pointer to its argument, eval() evaluates a ref, passing its other
+arguments to the scope pointed to.
+
Read the files in doc/ for more specific information, or look at examples/ to see
what the syntax looks like and what's possible.
diff --git a/doc/internal_functions_dictionary b/doc/internal_functions_dictionary
index f7243b2..5238098 100644
--- a/doc/internal_functions_dictionary
+++ b/doc/internal_functions_dictionary
@@ -1,4 +1,6 @@
root() -- executes all arguments. returns the eval of the last symbol
+ref() -- returns its argument without evaluating it
+eval() -- evaluates its first argument, passing the rest of its arguments into the eval of its first argument
store() -- stores a pointer to the first argument under the name specified by the eval of the second argument, within the local scope
update() -- same as store(), but tries to overwrite the value of an already stored key - if the current scope doesn't contain the key, checks upwards. if no scope contains the key, update() does nothing
eq() -- returns 1 if the eval of all the arguments is the same, 0 if different. accepts any number of arguments