Added (env:all-values env)

This commit is contained in:
Justin Ethier 2016-09-17 00:57:49 -04:00
parent d078e4d1c1
commit a2aa1fe9a3

View file

@ -32,6 +32,7 @@
env:frame-values env:frame-values
env:add-binding-to-frame! env:add-binding-to-frame!
env:all-variables env:all-variables
env:all-values
env:extend-environment env:extend-environment
env:lookup env:lookup
env:lookup-variable-value env:lookup-variable-value
@ -315,6 +316,11 @@
(env:frame-variables (env:frame-variables
(env:first-frame env)))) (env:first-frame env))))
(define (env:all-values env)
(flatten
(env:frame-values
(env:first-frame env))))
(define (env:extend-environment vars vals base-env) (define (env:extend-environment vars vals base-env)
(if (= (length vars) (length vals)) (if (= (length vars) (length vals))
(cons (env:make-frame vars vals) base-env) (cons (env:make-frame vars vals) base-env)
@ -517,12 +523,11 @@
(lambda . lambda) (lambda . lambda)
(quote . quote) (quote . quote)
(set! . set!) (set! . set!)
(... . ...) ;; TODO: DEBUG ONLY! take it out though and syntax-rules is broken
(begin . begin) ;; TODO: just a quick-fix, not a long-term solution (begin . begin) ;; TODO: just a quick-fix, not a long-term solution
))) )))
(define (Cyc-er-compare? use-env) (define (Cyc-er-compare? use-env)
;; TODO: this is not good enough, need to determine if these symbols
;; are the same identifier in their *environment of use*
(lambda (a b) (lambda (a b)
(let ((aval (env:lookup a use-env #f)) (let ((aval (env:lookup a use-env #f))
(bval (env:lookup b use-env #f))) (bval (env:lookup b use-env #f)))