diff options
Diffstat (limited to 'go/src/printer/printer.go')
| -rw-r--r-- | go/src/printer/printer.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/go/src/printer/printer.go b/go/src/printer/printer.go index 887c749..428958e 100644 --- a/go/src/printer/printer.go +++ b/go/src/printer/printer.go @@ -24,9 +24,9 @@ func Pr_str(obj types.MalType, print_readably bool) string { return Pr_list(tobj.Val, print_readably, "(", ")", " ") case types.Vector: return Pr_list(tobj.Val, print_readably, "[", "]", " ") - case map[string]types.MalType: - str_list := make([]string, 0, len(tobj)*2) - for k, v := range tobj { + case types.HashMap: + str_list := make([]string, 0, len(tobj.Val)*2) + for k, v := range tobj.Val { str_list = append(str_list, Pr_str(k, print_readably)) str_list = append(str_list, Pr_str(v, print_readably)) } @@ -51,6 +51,9 @@ func Pr_str(obj types.MalType, print_readably bool) string { Pr_str(tobj.Exp, true) + ")" case func([]types.MalType)(types.MalType, error): return fmt.Sprintf("<function %v>", obj) + case *types.Atom: + return "(atom " + + Pr_str(tobj.Val, true) + ")" default: return fmt.Sprintf("%v", obj) } |
