smalltalk-tng

view experiments/codegen/evaluator-base-library.scm @ 321:c4a0718c2d3c

Sketch of dependencies
author Tony Garnock-Jones <tonygarnockjones@gmail.com>
date Sat Oct 08 15:36:03 2011 -0400 (7 months ago)
parents
children
line source
1 (define-macro prim0
2 (lambda (x env exp)
3 (let ((name (cadr x)))
4 `(define-global! ',name
5 (lambda ()
6 (%assemble () ()
7 (scheme (,name))))))))
9 (define-macro prim1
10 (lambda (x env exp)
11 (let ((name (cadr x)))
12 `(define-global! ',name
13 (lambda (a0)
14 (%assemble (a0) (a0)
15 (scheme (,name a0))))))))
17 (define-macro prim2
18 (lambda (x env exp)
19 (let ((name (cadr x)))
20 `(define-global! ',name
21 (lambda (a0 a1)
22 (%assemble (a0 a1) (a0 a1)
23 (scheme (,name a0 a1))))))))
25 (prim1 primitive-eval)
26 (prim1 read-file)
27 (prim1 write)
28 (prim1 newline)
30 (prim1 cdr)
31 (prim1 cddr)
32 (prim1 cddar)
33 (prim1 cdar)
34 (prim1 cdadr)
35 (prim1 car)
36 (prim1 cadr)
37 (prim1 caddr)
38 (prim1 cadddr)
39 (prim1 cadar)
40 (prim1 caar)
41 (prim1 caadr)
43 (prim1 box)
44 (prim1 unbox)
45 (prim2 set-box!)
47 (prim1 length)
48 (prim2 append)
49 (prim1 reverse)
50 (prim2 cons)
51 (prim2 eq?)
52 (prim2 =)
53 (prim1 not)
54 (prim1 null?)
55 (prim1 pair?)
56 (prim1 symbol?)
58 (prim0 gensym)
60 (define-global! 'map
61 (lambda (f l)
62 (if (null? l)
63 '()
64 (cons (f (car l))
65 (map f (cdr l))))))
67 (define-global! 'for-each
68 (lambda (f l)
69 (if (null? l)
70 'ok
71 (begin (f (car l))
72 (for-each f (cdr l))))))