#include #include #include #include #include #include fill: ( out x: std::string, in value: std::string, in count: int ) pre( value.size() >= count, "fill: value must contain at least count elements" ) = { x = value.substr(0, count); } main: () -> int = { x: std::string; // note: uninitialized! // if flip_a_coin() { // x = "xyzzy"; // } // else { // // fill( out x, "plugh", 40 ); // note: constructs x! // } print_decorated(x); } // Print! A one-expression function body... // print_decorated: (x:_) = std::cout << ">> [" << x << "]\n"; // Flip a coin! Exercise and 'as'... // rand_init_flag: std::once_flag = (); flip_a_coin: () -> bool = { std::call_once(rand_init_flag, srand, time(nullptr) as unsigned ); return std::rand()%2; }