;; temp.lq ;; Put temporary/experimental stuff here. ;; comparison operators ;; for now, we define these in terms of = and <. ;(define (<= a b) ; (or (= a b) (< a b))) (define (> a b) (not (<= a b))) (define (>= a b) (not (< a b))) (define (/= a b) (not (= a b))) ;; let# (define (let# *names values *exprs...) (let ((names (delayed-expr *names))) (if (> (length names) (length values)) (error "let#: not enough values") (let ((pairs (transpose names values)) (e (make-environment (lambda-environment *names)))) (for-each (lambda (p) (environment-bind! e (first p) (second p))) pairs) (eval-in (pair 'begin (delayed-expr *exprs...)) e))))) ;; my-set! is supposed to replace builtin set! at some point (define (my-set! *name value) (environment-set! (lambda-environment *name) (delayed-expr *name) value))