diff options
Diffstat (limited to 'go/src/step7_quote')
| -rw-r--r-- | go/src/step7_quote/step7_quote.go | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/go/src/step7_quote/step7_quote.go b/go/src/step7_quote/step7_quote.go index 999129e..d93f620 100644 --- a/go/src/step7_quote/step7_quote.go +++ b/go/src/step7_quote/step7_quote.go @@ -54,7 +54,7 @@ func quasiquote(ast MalType) MalType { func eval_ast(ast MalType, env EnvType) (MalType, error) { //fmt.Printf("eval_ast: %#v\n", ast) if Symbol_Q(ast) { - return env.Get(ast.(Symbol).Val) + return env.Get(ast.(Symbol)) } else if List_Q(ast) { lst := []MalType{} for _, a := range ast.(List).Val { @@ -116,7 +116,7 @@ func EVAL(ast MalType, env EnvType) (MalType, error) { case "def!": res, e := EVAL(a2, env) if e != nil { return nil, e } - return env.Set(a1.(Symbol).Val, res), nil + return env.Set(a1.(Symbol), res), nil case "let*": let_env, e := NewEnv(env, nil, nil) if e != nil { return nil, e } @@ -128,7 +128,7 @@ func EVAL(ast MalType, env EnvType) (MalType, error) { } exp, e := EVAL(arr1[i+1], let_env) if e != nil { return nil, e } - let_env.Set(arr1[i].(Symbol).Val, exp) + let_env.Set(arr1[i].(Symbol), exp) } ast = a2 env = let_env @@ -198,11 +198,11 @@ func rep(str string) (MalType, error) { func main() { // core.go: defined using go for k, v := range core.NS { - repl_env.Set(k, Func{v.(func([]MalType)(MalType,error)),nil}) + repl_env.Set(Symbol{k}, Func{v.(func([]MalType)(MalType,error)),nil}) } - repl_env.Set("eval", Func{func(a []MalType) (MalType, error) { + repl_env.Set(Symbol{"eval"}, Func{func(a []MalType) (MalType, error) { return EVAL(a[0], repl_env) },nil}) - repl_env.Set("*ARGV*", List{}) + repl_env.Set(Symbol{"*ARGV*"}, List{}) // core.mal: defined using the language itself rep("(def! not (fn* (a) (if a false true)))") @@ -214,7 +214,7 @@ func main() { for _,a := range os.Args[2:] { args = append(args, a) } - repl_env.Set("*ARGV*", List{args,nil}) + repl_env.Set(Symbol{"*ARGV*"}, List{args,nil}) if _,e := rep("(load-file \"" + os.Args[1] + "\")"); e != nil { fmt.Printf("Error: %v\n", e) os.Exit(1) |
