From 43fe3c4a1fc8e19c546acb832a5a2e82b0d52d74 Mon Sep 17 00:00:00 2001 From: q66 Date: Tue, 3 May 2016 19:33:49 +0100 Subject: [PATCH] more pipe examples --- examples/range_pipe.cc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/examples/range_pipe.cc b/examples/range_pipe.cc index 391e778..ddc434e 100644 --- a/examples/range_pipe.cc +++ b/examples/range_pipe.cc @@ -1,3 +1,6 @@ +#include + +#include #include #include #include @@ -53,4 +56,25 @@ int main() { writeln("2-tuple range zip"); for (auto v: iter({ 5, 10, 15, 20 }) | zip(iter({ 6, 11, 16, 21 }))) writeln(v.first, ", ", v.second); + + /* more complex pipe */ + writeln("several piped algorithms"); + + srand(time(0)); + Array arr; + generate(arr.iter(), []() { return rand() % 128; }); + + auto r = arr.iter() + | sort() + | filter([](auto v) { return v >= 65 && v <= 90; }) + | map([](auto v) { return char(v); }); + + writeln(String(r)); + + /* "list comprehensions" */ + writeln("list initialization"); + + Vector test(range(20) | filter([](int v) { return v % 2 == 0; }) + | map([](int v) { return v * 2; })); + writeln(test); }