From e8df5cd395569ddd944900ec7f22236db491b5a8 Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Sat, 18 Feb 2023 22:36:41 -0800 Subject: updated docs --- README | 3 +++ doc/internal_functions_dictionary | 2 ++ 2 files changed, 5 insertions(+) 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 -- cgit v1.3.1