diff options
| author | Tyge Løvset <[email protected]> | 2022-10-04 16:38:41 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2022-10-04 20:05:49 +0200 |
| commit | 5daba7ad2291dd7f02299eabeb650d0d0b77a1a6 (patch) | |
| tree | d56fa2a14c5f2a84022c67a6268574ef4f1241a7 /examples | |
| parent | 6bfc24241e2dea76dc14e3de771d98ecf6bb698e (diff) | |
| download | STC-modified-5daba7ad2291dd7f02299eabeb650d0d0b77a1a6.tar.gz STC-modified-5daba7ad2291dd7f02299eabeb650d0d0b77a1a6.zip | |
- Removed deprecated c_forrange() (replaced by c_forloop + crange type)
- Removed csview_new(literal) macro. Use c_sv(literal) instead.
- Added stc/views.h: moved crange from ccommon.h and added templated type c_listview. Instantiate by: using_listview(ViewName, ValueType) after #include, does not use #define i_val .... See examples in views.h.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/forfilter.c | 20 | ||||
| -rw-r--r-- | examples/prime.c | 3 |
2 files changed, 13 insertions, 10 deletions
diff --git a/examples/forfilter.c b/examples/forfilter.c index 2957fe63..336407de 100644 --- a/examples/forfilter.c +++ b/examples/forfilter.c @@ -2,6 +2,7 @@ #define i_implement #include <stc/cstr.h> #include <stc/csview.h> +#include <stc/views.h> #define i_type IVec #define i_val int @@ -29,8 +30,8 @@ void demo1(void) puts(""); int res, sum = 0; - c_forfilter (i, IVec, vec, - c_flt_skipwhile(i, *i.ref != 80) + c_forfilter (i, IVec, vec + , c_flt_skipwhile(i, *i.ref != 80) && c_flt_skip(i, 1) && c_flt_skipwhile(i, *i.ref != 80) && flt_isEven(i) @@ -59,9 +60,10 @@ fn main() { void demo2(void) { c_auto (IVec, vector) { - crange rv = crange_make(1, INTMAX_MAX); - c_forfilter (x, crange, rv, - flt_isOdd(x) + crange rv = crange_init(crange_MAX); + c_forfilter (x, crange, rv + , flt_isOdd(x) + && c_flt_skipwhile(x, *x.ref != 11) , c_flt_take(x, 5)) IVec_push(&vector, flt_square(x)); @@ -121,12 +123,12 @@ void demo5(void) #define flt_even(i) ((*i.ref & 1) == 0) #define flt_mid_decade(i) ((*i.ref % 10) != 0) puts("demo5:"); - crange r1 = crange_make(1963, INTMAX_MAX); - c_forfilter (i, crange, r1, - c_flt_skip(i,15) + crange r1 = crange_init(1963, crange_MAX); + c_forfilter (i, crange, r1 + , c_flt_skip(i,15) && c_flt_skipwhile(i, flt_mid_decade(i)) && c_flt_skip(i,30) - && flt_isEven(i) + && flt_even(i) , c_flt_take(i,10)) printf(" %lld", *i.ref); puts(""); diff --git a/examples/prime.c b/examples/prime.c index 613048bf..3f0c4f6e 100644 --- a/examples/prime.c +++ b/examples/prime.c @@ -2,6 +2,7 @@ #include <math.h> #include <time.h> #include <stc/cbits.h> +#include <stc/views.h> cbits sieveOfEratosthenes(size_t n) { @@ -40,7 +41,7 @@ int main(void) puts(""); puts("Show the last 50 primes using a temporary crange generator:"); - c_forfilter (i, crange, *(crange[]){crange_make(n - 1, 0, -2)} + c_forfilter (i, crange, c_range(n - 1, 0, -2) , cbits_test(&primes, *i.ref>>1) , c_flt_take(i, 50)) { printf("%lld ", *i.ref); |
