summaryrefslogtreecommitdiff
path: root/_tests/eval.scm
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2026-06-24 14:34:37 +0200
committerTaylan Kammer <taylan.kammer@gmail.com>2026-06-24 14:34:37 +0200
commitede65518591b9af79cb50b18dc83419625d27782 (patch)
tree4eedff3b74b59a55841dd5024583dd5660ec480e /_tests/eval.scm
parent61f87806e4e0beade8597a5f7a8fdf7769a7f081 (diff)
Various code cleanup.
Diffstat (limited to '_tests/eval.scm')
-rw-r--r--_tests/eval.scm25
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)))
+ (()))))
+
+
+
+
+