blob: accd8580e7388fc0a8c657e4989def14fa3dd873 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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)))
(()))))
|