diff options
| author | Joel Martin <github@martintribe.org> | 2014-12-18 20:33:49 -0600 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2015-01-09 16:16:50 -0600 |
| commit | b8ee29b22fbaa7a01f2754b4d6dd9af52e02017c (patch) | |
| tree | f4d977ed220e9a3f665cfbf4f68770a81e4c2095 /go/src/env | |
| parent | aaba249304b184e12e2445ab22d66df1f39a51a5 (diff) | |
| download | mal-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.go | 14 |
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 } |
