From ad95503cea8ca85e9188effa87681275283157bf Mon Sep 17 00:00:00 2001 From: Joel Martin Date: Mon, 6 Oct 2014 22:27:28 -0500 Subject: go: add step6_file --- go/src/core/core.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'go/src/core') diff --git a/go/src/core/core.go b/go/src/core/core.go index 9df71a6..94e2452 100644 --- a/go/src/core/core.go +++ b/go/src/core/core.go @@ -2,11 +2,13 @@ package core import ( "errors" + "io/ioutil" "fmt" ) import ( . "types" + "reader" "printer" ) @@ -31,6 +33,12 @@ func println(a []MalType) (MalType, error) { return nil, nil } +func slurp(a []MalType) (MalType, error) { + b, e := ioutil.ReadFile(a[0].(string)) + if e != nil { return nil, e } + return string(b), nil +} + // Sequence functions @@ -62,6 +70,9 @@ var NS = map[string]MalType{ "str": func(a []MalType) (MalType, error) { return str(a) }, "prn": func(a []MalType) (MalType, error) { return prn(a) }, "println": func(a []MalType) (MalType, error) { return println(a) }, + "read-string": func(a []MalType) (MalType, error) { + return reader.Read_str(a[0].(string)) }, + "slurp": slurp, "<": func(a []MalType) (MalType, error) { return a[0].(int) < a[1].(int), nil }, -- cgit v1.2.3