libostd/examples/range.cc

27 lines
668 B
C++
Raw Normal View History

2016-01-31 23:19:23 +01:00
#include <ostd/range.hh>
#include <ostd/io.hh>
#include <ostd/algorithm.hh>
using namespace ostd;
int main() {
/* range iter */
writeln("range iter test");
for (int i: range(10))
writeln(i);
/* algorithm: map */
writeln("range map test");
2016-02-02 00:10:05 +01:00
for (float f: map(range(10), [](int v) { return v + 0.5f; }))
writeln(f);
2016-01-31 23:19:23 +01:00
/* alrogithm: filter */
writeln("range filter test");
2016-02-02 00:10:05 +01:00
auto v = { 5, 5, 5, 5, 5, 10, 15, 4, 8, 2 };
for (int i: filter(iter(v), [](int v) { return v > 5; }))
2016-01-31 23:19:23 +01:00
writeln(i);
/* generate string ABCDEF */
2016-02-02 00:10:05 +01:00
String s(map(range(6), [](int v) -> char { return v + 65; }));
writeln(s);
2016-01-31 23:19:23 +01:00
}