}
when (/^HashMap/) {
my $new_hm = {};
- foreach my $k (keys($ast->{val})) {
+ foreach my $k (keys( %{ $ast->{val} })) {
$new_hm->{$k} = EVAL($ast->get($k), $env);
}
return HashMap->new($new_hm);
# apply list
$ast = macroexpand($ast, $env);
- if (! _list_Q($ast)) { return $ast; }
+ if (! _list_Q($ast)) {
+ return eval_ast($ast, $env);
+ }
my ($a0, $a1, $a2, $a3) = @{$ast->{val}};
given ((ref $a0) =~ /^Symbol/ ? $$a0 : $a0) {