1 import types
.MalException
17 Env(Env outer_env
, binds
, exprs
) {
20 for (int i
=0; i
<binds
.size
; i
++) {
21 if (binds
[i
].value
== "&") {
22 data
[binds
[i
+1].value
] = (exprs
.size() > i
) ? exprs
[i
..-1] : []
25 data
[binds
[i
].value
] = exprs
[i
]
30 def
set(MalSymbol key
, def val
) {
34 def
find(MalSymbol key
) {
35 if (data
.containsKey(key
.value
)) {
37 } else if (outer
!= null) {
44 def
get(MalSymbol key
) {
47 throw new MalException("'${key.value}' not found")