View difference between Paste ID: f1bPvmWd and Nen3iu4w
SHOW: | | - or go back to the newest paste.
1
/*
2
(empty-frame)
3
4
null
5
6
(update)
7
8
     /\
9
    /  \
10
   /\   \
11
var val /\
12
       /  \
13
      /\   \
14
     /  \   \
15
    var val  \
16
              \
17
              null
18
19
(make-env)
20
21
          /\
22
         /  \
23
empty-frame  null
24
25
26
(extend-env)
27
28
            /\
29
           /  \
30
  empty-frame  \
31
               /\
32
              /  \
33
             /\  null
34
            /  \
35
           /\   \
36
        var val /\
37
               /  \
38
              /\   \
39
             /  \   \
40
            var val  \
41
                      \
42
                      null
43
44
(define-var)
45
46
         /\
47
        /  \
48
       /    \
49
      /\     \
50
     /  \     \   current frame
51
    /\   \     \
52
 var val /\     \   <- defined var and val now
53
        /  \     \
54
       /\   \     \
55
      /  \   \     \
56
     var val  \     \
57
               \     \
58
               null   \
59
                       \
60
                       /\
61
                      /  \
62
                     /    \
63
                    /\     \
64
                   /  \     \
65
                  /\   \     \   older frame
66
               var val /\     \
67
                      /  \     \
68
                     /\   \     \
69
                    /  \   \     \
70
                   var val  \     \
71
                             \     \
72
                             null   \
73
                                     \
74
                                     /\
75
                                    /  \
76
                                   /    \
77
                                  /\     \ oldest frame
78
                                 /  \     \
79
                                /\   \     \
80
                             var val /\     \
81
                                    /  \     \
82
                                   /\   \     \
83
                                  /  \   \     \
84
                                 var val  \     \
85
                                           \     \
86
                                           null   \
87
                                                  null
88
89
90
structure of closure
91
92
(make-closure)
93
94
        /\
95
       /  \
96
*lambda*   \
97
           /\
98
          /  \
99
         /\   \
100
        /  \   \
101
       /    \   \
102
      /\     \   \
103
     /  \     \   \
104
    /\   \     \   \
105
 var val /\     \   \
106
        /  \     \   \
107
       /\   \     \   \
108
      /  \   \     \   \
109
     var val  \     \   \
110
               \     \   \
111
               null   \   \
112
                       \   \
113
                       /\   \
114
                      /  \   \
115
                     /    \   \
116
                    /\     \   \
117
                   /  \     \   \
118
                  /\   \     \   \
119
               var val /\     \   \
120
                      /  \     \   \
121
                     /\   \     \   \
122
                    /  \   \     \   \
123
                   var val  \     \   \
124
                             \     \   \
125
                             null   \   \
126
                                     \   \
127
                                     /\   \
128
                                    /  \   \
129
                                   /    \   \
130
                                  /\     \   \
131
                                 /  \     \   \
132
                                /\   \     \   \
133
                             var val /\     \   \
134
                                    /  \     \   \
135
                                   /\   \     \   \
136
                                  /  \   \     \   \
137
                                 var val  \     \   \
138
                                           \     \   \
139
                                           null   \   \
140
                                                   \   \
141
                                                   null \
142
                                                        /
143
                                                       /
144
                                                      /
145
                                                     /
146
                                                    /
147
                                                   /
148
                                                  /
149
                                                 /
150
                                                /
151
                                               /
152
                                              /
153
                                             /
154
                                            /
155
                                           /
156
                                          /
157
                                         /
158
                                        /\
159
                                       /  \
160
                                      /    \
161
                                     /      \
162
                                    /\       \
163
                                   x  \     function-body 
164
                                      /\    (+ x (* y z))
165
                                     y  \       \
166
                                        /\       \
167
                                       z  null    \
168
                                                   \
169
                                                   /\
170
                                                  +  \
171
                                                     /\
172
                                                    x  \
173
                                                       /\
174
                                                      *  \
175
                                                         /\
176
                                                        y  \
177
                                                           /\
178
                                                          z  null
179
180
structure of primitive
181
182
(make-primitive)
183
184
           /\
185
          /  \
186
*primitive*  /\
187
            /  \
188
           2   /\
189
              /  \
190
             /   null
191
            /
192-
  (cons env (+ (car args) (cadr args))))
192+
193
  (cons env (+ (car args) (cadr args))))
194
*/
195
196
)CM comment 1
197
)CM comment 2
198
)CM comment 3