summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--docs/ccommon_api.md6
-rw-r--r--examples/forfilter.c34
-rw-r--r--examples/forloops.c6
-rw-r--r--include/stc/ccommon.h6
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 <stc/cstack.h>
// 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) \