diff options
| author | Tyge Løvset <[email protected]> | 2022-09-23 21:00:48 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2022-09-23 21:00:48 +0200 |
| commit | b6f75794b2fee2d65f886e84c399d1b8927ff04a (patch) | |
| tree | 553643b1a90ee86f1198c33dc80fb52c770c5184 /examples | |
| parent | 2c83996f1ad7ac7176833d1ecb76f59120bf52cd (diff) | |
| download | STC-modified-b6f75794b2fee2d65f886e84c399d1b8927ff04a.tar.gz STC-modified-b6f75794b2fee2d65f886e84c399d1b8927ff04a.zip | |
- Finished c_forfilter() functionality.
- Added c_forloop(), similar to c_forrange(), but same access to elements as other c_for-loops, i.e. *i.ref (but also i.val works).
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/forfilter.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/examples/forfilter.c b/examples/forfilter.c index 409d83e3..955596cd 100644 --- a/examples/forfilter.c +++ b/examples/forfilter.c @@ -12,9 +12,7 @@ #include <stc/cstack.h> // filters and transforms: -#define flt_drop(i, n) (i.index >= (n)) #define flt_remove(i, x) (*i.ref != (x)) -#define flt_take(i, n) (i.count < (n)) #define flt_even(i) ((*i.ref & 1) == 0) #define trf_square(i) (*i.ref * *i.ref) @@ -24,15 +22,16 @@ void demo1(void) c_forlist (i, int, {0, 1, 2, 3, 4, 5, 80, 6, 7, 80, 8, 9, 80, 10, 11, 12, 13, 14, 15, 80, 16, 17}) IVec_push(&vec, *i.ref); - c_forfilter (i, IVec, vec, *i.ref != 80) + c_forfilter (i, IVec, vec, flt_remove(i, 80)) printf(" %d", *i.ref); puts(""); int res, sum = 0; - c_forfilter (i, IVec, vec, flt_drop(i, 3) - && flt_even(i) - && flt_remove(i, 80) - , flt_take(i, 5)) { + c_forfilter (i, IVec, vec, c_flt_drop(i, 3) + && flt_even(i) + && flt_remove(i, 80) + //&& c_flt_take(i, 5) + , c_flt_taketotal(i, 5)) { sum += res = trf_square(i); printf(" %d", res); } |
