diff options
Diffstat (limited to '_tests/eval.scm')
| -rw-r--r-- | _tests/eval.scm | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/_tests/eval.scm b/_tests/eval.scm new file mode 100644 index 0000000..accd858 --- /dev/null +++ b/_tests/eval.scm @@ -0,0 +1,25 @@ + + + +(define (eval form module) + (cond + ((const? form) form) + ((id? form) (lookup form module)) + ((list? form) + (let ((len (list-len form)) + (ptr (list-ptr form))) + (eval-list ptr len module))))) + +(define (eval-list ptr len module) + (let ((first ptr[0])) + (cond + ((funcall? first) + (let ((fun-ptr (funcall-ptr first)) + (argv (eval-args ptr len module))) + (funcall fun-ptr argv))) + (())))) + + + + + |
