From 513300d52839e7e493bd296ba9786a018ce9dbd8 Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Tue, 27 Sep 2022 09:51:52 +0200 Subject: Renamed c_flt_drop() and c_flt_dropwhile() to c_flt_skip() and c_flt_skipwhile() This lines up with Rust namings, and does not conflict with the use of drop as destructor. --- docs/ccommon_api.md | 6 +++--- examples/forfilter.c | 34 +++++++++++++++++----------------- examples/forloops.c | 6 +++--- include/stc/ccommon.h | 6 +++--- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/ccommon_api.md b/docs/ccommon_api.md index 39200907..be23dc36 100644 --- a/docs/ccommon_api.md +++ b/docs/ccommon_api.md @@ -224,9 +224,9 @@ Iterate containers with stop-criteria and chained range filtering. | Built-in filter | Description | |:----------------------------------|:-------------------------------------| -| `c_flt_drop(it, numItems)` | Drop numItems | +| `c_flt_skip(it, numItems)` | Skip numItems | | `c_flt_take(it, numItems)` | Take numItems | -| `c_flt_dropwhile(it, predicate)` | Drop items until predicate is false | +| `c_flt_skipwhile(it, predicate)` | Skip items until predicate is false | | `c_flt_takewhile(it, predicate)` | Take items until predicate is false | `it.index` holds the index of the source item, and `it.count` the current number of items taken. @@ -248,7 +248,7 @@ int main() { c_forfilter (i, IVec, vec, isOdd(*i.ref) - && c_flt_drop(i, 100) // built-in + && c_flt_skip(i, 100) // built-in && isPrime(*i.ref) , c_flt_take(i, 10)) { // breaks loop on false. printf(" %d", *i.ref); diff --git a/examples/forfilter.c b/examples/forfilter.c index 916d8e69..2957fe63 100644 --- a/examples/forfilter.c +++ b/examples/forfilter.c @@ -12,10 +12,10 @@ #include // filters and transforms: -#define flt_remove(i, x) (*i.ref != (x)) -#define flt_even(i) ((*i.ref & 1) == 0) -#define flt_odd(i) (*i.ref & 1) -#define trf_square(i) (*i.ref * *i.ref) +#define flt_skipValue(i, x) (*i.ref != (x)) +#define flt_isEven(i) ((*i.ref & 1) == 0) +#define flt_isOdd(i) (*i.ref & 1) +#define flt_square(i) (*i.ref * *i.ref) void demo1(void) { @@ -24,20 +24,20 @@ void demo1(void) IVec_push(&vec, *i.ref); puts("demo1:"); - c_forfilter (i, IVec, vec, flt_remove(i, 80)) + c_forfilter (i, IVec, vec, flt_skipValue(i, 80)) printf(" %d", *i.ref); puts(""); int res, sum = 0; c_forfilter (i, IVec, vec, - c_flt_dropwhile(i, *i.ref != 80) - && c_flt_drop(i, 1) - && c_flt_dropwhile(i, *i.ref != 80) - && flt_even(i) - && flt_remove(i, 80) + c_flt_skipwhile(i, *i.ref != 80) + && c_flt_skip(i, 1) + && c_flt_skipwhile(i, *i.ref != 80) + && flt_isEven(i) + && flt_skipValue(i, 80) , c_flt_take(i, 5) // short-circuit ){ - sum += res = trf_square(i); + sum += res = flt_square(i); printf(" %d", res); } printf("\n sum: %d\n", sum); @@ -61,9 +61,9 @@ void demo2(void) c_auto (IVec, vector) { crange rv = crange_make(1, INTMAX_MAX); c_forfilter (x, crange, rv, - flt_odd(x) + flt_isOdd(x) , c_flt_take(x, 5)) - IVec_push(&vector, trf_square(x)); + IVec_push(&vector, flt_square(x)); puts("demo2:"); c_foreach (i, IVec, vector) printf(" %d", *i.ref); @@ -123,10 +123,10 @@ void demo5(void) puts("demo5:"); crange r1 = crange_make(1963, INTMAX_MAX); c_forfilter (i, crange, r1, - c_flt_drop(i,15) - && c_flt_dropwhile(i, flt_mid_decade(i)) - && c_flt_drop(i,30) - && flt_even(i) + c_flt_skip(i,15) + && c_flt_skipwhile(i, flt_mid_decade(i)) + && c_flt_skip(i,30) + && flt_isEven(i) , c_flt_take(i,10)) printf(" %lld", *i.ref); puts(""); diff --git a/examples/forloops.c b/examples/forloops.c index f119e33a..7a68f844 100644 --- a/examples/forloops.c +++ b/examples/forloops.c @@ -67,11 +67,11 @@ int main() puts("\n\nc_forfilter:"); c_forfilter (i, IVec, vec, - c_flt_dropwhile(i, *i.ref != 65) + c_flt_skipwhile(i, *i.ref != 65) && c_flt_takewhile(i, *i.ref != 280) - && c_flt_dropwhile(i, isOdd(i)) + && c_flt_skipwhile(i, isOdd(i)) && isOdd(i) - && c_flt_drop(i, 2) + && c_flt_skip(i, 2) , c_flt_take(i, 1)) printf(" %d", *i.ref); puts(""); diff --git a/include/stc/ccommon.h b/include/stc/ccommon.h index c6bf1f72..c6ec4529 100644 --- a/include/stc/ccommon.h +++ b/include/stc/ccommon.h @@ -168,9 +168,9 @@ STC_INLINE char* c_strnstrn(const char *s, const char *needle, #define c_FLT_STACK 14 // 22, 30, .. #endif #define c_flt_take(i, n) (++(i).s1[(i).s1top++] <= (n)) -#define c_flt_drop(i, n) (++(i).s1[(i).s1top++] > (n)) -#define c_flt_dropwhile(i, pred) ((i).s2[(i).s2top++] |= !(pred)) -#define c_flt_takewhile(i, pred) !c_flt_dropwhile(i, pred) +#define c_flt_skip(i, n) (++(i).s1[(i).s1top++] > (n)) +#define c_flt_skipwhile(i, pred) ((i).s2[(i).s2top++] |= !(pred)) +#define c_flt_takewhile(i, pred) !c_flt_skipwhile(i, pred) #define c_forfilter(...) c_MACRO_OVERLOAD(c_forfilter, __VA_ARGS__) #define c_forfilter4(it, C, cnt, filter) \ -- cgit v1.2.3