diff options
Diffstat (limited to 'ruby/step6_file.rb')
| -rw-r--r-- | ruby/step6_file.rb | 6 |
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 |
