7 function env
= Env
(outer
, binds
, exprs
)
8 env.data
= containers.Map
();
14 k
= binds.
get(i
).name
;
16 env.data
(binds.
get(i
+1).name
) = exprs.
slice(i
);
19 env.data
(k
) = exprs.
get(i
);
25 function ret
= set(env
, k
, v
)
29 function ret
= find(env
, k
)
30 if env.data.isKey
(k.name
)
33 if ~islogical
(env.outer
)
34 ret
= env.outer.
find(k
);
40 function ret
= get(env
, k
)
43 ret
= fenv.data
(k.name
);
45 throw
(MException
('ENV:notfound', ...
46 sprintf('''%s'' not found', k.name
)));