Added puts and join

This commit is contained in:
Jonathan Turner 2009-06-25 02:45:28 +00:00
parent 12f7c222e1
commit 18985b6a97
2 changed files with 10 additions and 2 deletions

View File

@ -205,10 +205,12 @@ namespace chaiscript
ss.register_function(boost::shared_ptr<dispatchkit::Proxy_Function>( ss.register_function(boost::shared_ptr<dispatchkit::Proxy_Function>(
new dispatchkit::Dynamic_Proxy_Function(boost::bind(&ChaiScript_System<Eval_Engine>::eval, boost::ref(*this), _1), 1)), "eval"); new dispatchkit::Dynamic_Proxy_Function(boost::bind(&ChaiScript_System<Eval_Engine>::eval, boost::ref(*this), _1), 1)), "eval");
evaluate_string("def print(x) { print_string(x.to_string()) }; " evaluate_string("def puts(x) { print_string(x.to_string()) }; def print(x) { println_string(x.to_string()) };"
"def for_each(container, func) { var range = range(container); while (!range.empty()) { func(range.front()); range.popFront();} }; " "def for_each(container, func) { var range = range(container); while (!range.empty()) { func(range.front()); range.popFront();} }; "
"def map(container, func) { var retval = Vector(); var range = range(container); while (!range.empty()) { retval.push_back(func(range.front())); range.popFront();}; return retval;}; " "def map(container, func) { var retval = Vector(); var range = range(container); while (!range.empty()) { retval.push_back(func(range.front())); range.popFront();}; return retval;}; "
"def reduce(container, func, initial) { var retval = initial; var range = range(container); while (!range.empty()) { retval = (func(range.front(), retval)); range.popFront();}; return retval;}"); "def reduce(container, func, initial) { var retval = initial; var range = range(container); while (!range.empty()) { retval = (func(range.front(), retval)); range.popFront();}; return retval;};"
"def join(container, delim) { var retval = \"\"; var range = range(container); if (!range.empty()) { retval += to_string(range.front()); range.popFront(); "
"while (!range.empty()) { retval += delim; retval += to_string(range.front()); range.popFront(); }\n }\n return retval; };" );
return ss; return ss;
} }

View File

@ -404,6 +404,11 @@ namespace dispatchkit
} }
static void print(const std::string &s) static void print(const std::string &s)
{
std::cout << s;
}
static void println(const std::string &s)
{ {
std::cout << s << std::endl; std::cout << s << std::endl;
} }
@ -456,6 +461,7 @@ namespace dispatchkit
register_function(s, &print, "print_string"); register_function(s, &print, "print_string");
register_function(s, &println, "println_string");
s.register_function(boost::function<void ()>(boost::bind(&dump_system, boost::ref(s))), "dump_system"); s.register_function(boost::function<void ()>(boost::bind(&dump_system, boost::ref(s))), "dump_system");
s.register_function(boost::function<void (Boxed_Value)>(boost::bind(&dump_object, _1)), "dump_object"); s.register_function(boost::function<void (Boxed_Value)>(boost::bind(&dump_object, _1)), "dump_object");