Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (empty-FRAME)
- null
- (update)
- /\
- / \
- /\ \
- var val /\
- / \
- /\ \
- / \ \
- var val \
- \
- null
- (make-env)
- /\
- / \
- empty-FRAME null
- (extend-env)
- /\
- / \
- empty-FRAME \
- /\
- / \
- /\ null
- / \
- /\ \
- var val /\
- / \
- /\ \
- / \ \
- var val \
- \
- null
- (define-var)
- /\
- / \
- / \
- /\ \
- / \ \ current FRAME
- /\ \ \
- var val /\ \ <- defined var and val now
- / \ \
- /\ \ \
- / \ \ \
- var val \ \
- \ \
- null \
- \
- /\
- / \
- / \
- /\ \
- / \ \
- /\ \ \ older FRAME
- var val /\ \
- / \ \
- /\ \ \
- / \ \ \
- var val \ \
- \ \
- null \
- \
- /\
- / \
- / \
- /\ \ oldest FRAME
- / \ \
- /\ \ \
- var val /\ \
- / \ \
- /\ \ \
- / \ \ \
- var val \ \
- \ \
- null \
- null
- structure of closure
- (make-closure)
- /\
- / \
- *lambda* \
- /\
- / \
- /\ \
- / \ \
- / \ \
- /\ \ \
- / \ \ \
- /\ \ \ \
- var val /\ \ \
- / \ \ \
- /\ \ \ \
- / \ \ \ \
- var val \ \ \
- \ \ \
- null \ \
- \ \
- /\ \
- / \ \
- / \ \
- /\ \ \
- / \ \ \
- /\ \ \ \
- var val /\ \ \
- / \ \ \
- /\ \ \ \
- / \ \ \ \
- var val \ \ \
- \ \ \
- null \ \
- \ \
- /\ \
- / \ \
- / \ \
- /\ \ \
- / \ \ \
- /\ \ \ \
- var val /\ \ \
- / \ \ \
- /\ \ \ \
- / \ \ \ \
- var val \ \ \
- \ \ \
- null \ \
- \ \
- null \
- /
- /
- /
- /
- /
- /
- /
- /
- /
- /
- /
- /
- /
- /
- /
- /
- /\
- / \
- / \
- / \
- /\ \
- x \ function-body
- /\ (+ x (* y z))
- y \ \
- /\ \
- z null \
- \
- /\
- + \
- /\
- x \
- /\
- * \
- /\
- y \
- /\
- z null
- structure of primitive
- (make-primitive)
- /\
- / \
- *primitive* /\
- / \
- 2 /\
- / \
- / null
- /
- (lambda (args env)
- (cons env (+ (car args) (cadr args))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement