From d9d8a275681f764d0cc0abbe2beafca19ce3ddfa Mon Sep 17 00:00:00 2001 From: tijani Date: Mon, 14 Aug 2023 22:39:08 +0000 Subject: [PATCH] puts() Can now print out to STDOUT. puts() return NULL, its only business is to print. git-svn-id: https://svn.tlawal.org/svn/monkey@66 f6afcba9-9ef1-4bdd-9b72-7484f5705bac --- evaluator/builtins.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/evaluator/builtins.go b/evaluator/builtins.go index 064c580..21dd659 100644 --- a/evaluator/builtins.go +++ b/evaluator/builtins.go @@ -1,6 +1,9 @@ package evaluator -import "monkey/object" +import( + "fmt" + "monkey/object" +) var builtins = map[string]*object.Builtin{ "len": &object.Builtin{ @@ -17,4 +20,12 @@ var builtins = map[string]*object.Builtin{ } }, }, + "puts": &object.Builtin { + Fn: func(args ...object.Object) object.Object { + for _, arg := range args { + fmt.Println(arg.Inspect()) + } + return NULL // puts only print things passed into it, it does not return a value when used in a function or such. + }, + }, }