Merge pull request #158 from dubek/first-rest-nil
[jackhill/mal.git] / perl / step9_try.pl
index ec823bc..b7c49d4 100644 (file)
@@ -83,7 +83,7 @@ sub eval_ast {
         }
         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);
@@ -106,7 +106,9 @@ sub EVAL {
 
     # 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) {