summaryrefslogtreecommitdiffhomepage
path: root/examples
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2022-10-04 16:38:41 +0200
committerTyge Løvset <[email protected]>2022-10-04 20:05:49 +0200
commit5daba7ad2291dd7f02299eabeb650d0d0b77a1a6 (patch)
treed56fa2a14c5f2a84022c67a6268574ef4f1241a7 /examples
parent6bfc24241e2dea76dc14e3de771d98ecf6bb698e (diff)
downloadSTC-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.c20
-rw-r--r--examples/prime.c3
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);