1 (import [hy.models [HySymbol :as Sym]])
3 (defn env-new [&optional [outer None] [binds []] [exprs []]]
4 (setv env {:outer outer})
7 (= (Sym "&") (first binds))
8 (do (assoc env (nth binds 1) (tuple exprs)) (break))
11 (do (assoc env (first binds) (first exprs))
12 (setv binds (list (rest binds))
13 exprs (list (rest exprs))))))
16 (defn env-find [env k]
19 (get env ':outer) (env-find (get env ':outer) k)
23 (setv e (env-find env k))
25 (raise (Exception (+ "'" k "' not found"))))
28 (defn env-set [env k v]