aboutsummaryrefslogtreecommitdiff
path: root/go/src/env
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2014-12-18 20:33:49 -0600
committerJoel Martin <github@martintribe.org>2015-01-09 16:16:50 -0600
commitb8ee29b22fbaa7a01f2754b4d6dd9af52e02017c (patch)
treef4d977ed220e9a3f665cfbf4f68770a81e4c2095 /go/src/env
parentaaba249304b184e12e2445ab22d66df1f39a51a5 (diff)
downloadmal-b8ee29b22fbaa7a01f2754b4d6dd9af52e02017c.tar.gz
mal-b8ee29b22fbaa7a01f2754b4d6dd9af52e02017c.zip
All: add keywords.
Also, fix nth and count to match cloure.
Diffstat (limited to 'go/src/env')
-rw-r--r--go/src/env/env.go14
1 files changed, 7 insertions, 7 deletions
diff --git a/go/src/env/env.go b/go/src/env/env.go
index 4d20857..584c9a7 100644
--- a/go/src/env/env.go
+++ b/go/src/env/env.go
@@ -35,8 +35,8 @@ func NewEnv(outer EnvType, binds_mt MalType, exprs_mt MalType) (EnvType, error)
return env, nil
}
-func (e Env) Find(key string) EnvType {
- if _, ok := e.data[key]; ok {
+func (e Env) Find(key Symbol) EnvType {
+ if _, ok := e.data[key.Val]; ok {
return e
} else if (e.outer != nil) {
return e.outer.Find(key)
@@ -45,15 +45,15 @@ func (e Env) Find(key string) EnvType {
}
}
-func (e Env) Set(key string, value MalType) MalType {
- e.data[key] = value
+func (e Env) Set(key Symbol, value MalType) MalType {
+ e.data[key.Val] = value
return value
}
-func (e Env) Get(key string) (MalType, error) {
+func (e Env) Get(key Symbol) (MalType, error) {
env := e.Find(key)
if env == nil {
- return nil, errors.New("'" + key + "' not found")
+ return nil, errors.New("'" + key.Val + "' not found")
}
- return env.(Env).data[key], nil
+ return env.(Env).data[key.Val], nil
}