aboutsummaryrefslogtreecommitdiff
path: root/ruby/step6_file.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/step6_file.rb')
-rw-r--r--ruby/step6_file.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/ruby/step6_file.rb b/ruby/step6_file.rb
index 9d0324f..01d1988 100644
--- a/ruby/step6_file.rb
+++ b/ruby/step6_file.rb
@@ -19,6 +19,10 @@ def eval_ast(ast, env)
List.new ast.map{|a| EVAL(a, env)}
when Vector
Vector.new ast.map{|a| EVAL(a, env)}
+ when Hash
+ new_hm = {}
+ ast.each{|k,v| new_hm[EVAL(k,env)] = EVAL(v, env)}
+ new_hm
else
ast
end
@@ -27,6 +31,8 @@ end
def EVAL(ast, env)
while true
+ #puts "EVAL: #{_pr_str(ast, true)}"
+
if not ast.is_a? List
return eval_ast(ast, env)
end