aboutsummaryrefslogtreecommitdiff
path: root/go/src/reader
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2014-10-09 19:14:43 -0500
committerJoel Martin <github@martintribe.org>2014-10-09 19:14:43 -0500
commitf2c9811fd8cbb205fad68952ebc1ba5d310f148d (patch)
tree0a1d80a4ccfb6378014098475c70a90093b7efa7 /go/src/reader
parentad7e866ea1d4d035d876e58bca681a72099449af (diff)
downloadmal-f2c9811fd8cbb205fad68952ebc1ba5d310f148d.tar.gz
mal-f2c9811fd8cbb205fad68952ebc1ba5d310f148d.zip
go: add hash-map support.
Diffstat (limited to 'go/src/reader')
-rw-r--r--go/src/reader/reader.go14
1 files changed, 1 insertions, 13 deletions
diff --git a/go/src/reader/reader.go b/go/src/reader/reader.go
index f8c15d5..2ac5a08 100644
--- a/go/src/reader/reader.go
+++ b/go/src/reader/reader.go
@@ -105,20 +105,8 @@ func read_vector(rdr Reader) (MalType, error) {
func read_hash_map(rdr Reader) (MalType, error) {
mal_lst, e := read_list(rdr, "{", "}")
- lst := mal_lst.(List).Val
if e != nil { return nil, e }
- if len(lst) % 2 == 1 {
- return nil, errors.New("Odd number of hash map arguments")
- }
- m := map[string]MalType{}
- for i := 0; i < len(lst); i+=2 {
- str, ok := lst[i].(string)
- if !ok {
- return nil, errors.New("expected hash-map key string")
- }
- m[str] = lst[i+1]
- }
- return m, nil
+ return NewHashMap(mal_lst)
}
func read_form(rdr Reader) (MalType, error) {