diff options
author | Aleksey Veresov <aleksey@veresov.pro> | 2020-09-28 04:59:07 +0300 |
---|---|---|
committer | Aleksey Veresov <aleksey@veresov.pro> | 2020-09-28 04:59:07 +0300 |
commit | 6b08e86c9a16bfac5a208a04926dcc66b861a096 (patch) | |
tree | d0aa6b84d1d0bd62268434187d12f7bf02397030 /examples/math.c | |
parent | aee665f2bc7d66d5e6ecb1e31f9e2ccf614c7fa2 (diff) | |
download | csx-6b08e86c9a16bfac5a208a04926dcc66b861a096.tar csx-6b08e86c9a16bfac5a208a04926dcc66b861a096.tar.xz csx-6b08e86c9a16bfac5a208a04926dcc66b861a096.zip |
Something...
Diffstat (limited to 'examples/math.c')
-rw-r--r-- | examples/math.c | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/examples/math.c b/examples/math.c deleted file mode 100644 index df0aabc..0000000 --- a/examples/math.c +++ /dev/null @@ -1,70 +0,0 @@ -#include <csx.h> - - -v def_rat_sum(v construct, v numer, v denom) -{ - v a = atom("a"); - v b = atom("b"); - return el(define, l(atom("rat_sum"), a, b), - l(construct, l(sum, l(mul, l(numer, a), l(denom, b)), - l(mul, l(numer, b), l(denom, a))), - l(mul, l(denom, a), l(denom, b))) - ); -} - -v def_rat_sum(v construct, v numer, v denom) -{ - v a = atom("a"); - v b = atom("b"); - return el(define, l(atom("rat_sub"), a, b), - l(construct, l(sub, l(mul, l(numer, a), l(denom, b)), - l(mul, l(numer, b), l(denom, a))), - l(mul, l(denom, a), l(denom, b))) - ); -} - -v def_rat_equ(v construct, v numer, v denom) -{ - v a = atom("a"); - v b = atom("b"); - return el(define, l(atom("rat_equ"), a, b), - l(equ, l(mul, l(numer, a), l(denom, b)), - l(mul, l(numer, b), l(denom, a))) - ); -} - -void printres(v a, v b, v absum, v absub, int *are_equ, v numer, v denom) -{ - int an = *(int *)el(numer, a); - int ad = *(int *)el(denom, a); - int bn = *(int *)el(numer, b); - int bd = *(int *)el(denom, b); - int sumn = *(int *)el(numer, absum); - int sumd = *(int *)el(denom, absum); - int subn = *(int *)el(numer, absub); - int subd = *(int *)el(denom, absub); - printf("%d/%d + %d/%d = %d/%d\n", an, ad, bn, bd, sumn, sumd); - printf("%d/%d - %d/%d = %d/%d\n", an, ad, bn, bd, subn, subd); - if (*are_equ) { - puts("And they are equal.\n"); - } else { - puts("And they are not equal.\n"); - } -} - -int main() -{ - v rat = l(define, atom("rat"), cons); - v rat_numer = l(define, atom("rat_numer"), car); - v rat_denom = l(define, atom("rat_denom"), cdr); - v rat_sum = def_rat_sum(rat, rat_numer, rat_denom); - v rat_sub = def_rat_sub(rat, rat_numer, rat_denom); - v rat_equ = def_rat_equ(rat, rat_numer, rat_denom); - v number_a = el(rat, n(19), n(99)); - v number_b = el(rat, n(7), n(3)); - v absum = el(rat_sum, number_a, number_b); - v absub = el(rat_sub, number_a, number_b); - v are_equ = el(rat_equ, number_a, number_b); - printres(number_a, number_b, sum, sub, are_equ, numer, denom); - return 0; -} |