From a2aa1fe9a37e4265eef6451cb48cd517e20ba150 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Sat, 17 Sep 2016 00:57:49 -0400 Subject: [PATCH] Added (env:all-values env) --- scheme/cyclone/util.sld | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index f234b57e..028b90b3 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -32,6 +32,7 @@ env:frame-values env:add-binding-to-frame! env:all-variables + env:all-values env:extend-environment env:lookup env:lookup-variable-value @@ -315,6 +316,11 @@ (env:frame-variables (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) (if (= (length vars) (length vals)) (cons (env:make-frame vars vals) base-env) @@ -517,12 +523,11 @@ (lambda . lambda) (quote . quote) (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 ))) (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) (let ((aval (env:lookup a use-env #f)) (bval (env:lookup b use-env #f)))