on master help sign in
Remove apparently unused iif directory
commit7e6ecf9512355d4a1a2c23afc2db89f8103dfb03 authorShea Levy <shea@shealevy.com> dateSat 17 Oct 2015, 10:22 (11 years ago) parent83f0af1
6 files changed−226
iif/adder.iif−30 iif/big.iif−7 iif/ctest.c−106 iif/lazy.iif−21 iif/testmap.iif−30 iif/testvm.iif−32
iif/adder.iifdeleted−30
@@ -1,30 +0,0 @@
1−data O 0
2−data S 1
3−
4−fun plus(x, y) = case x of {
5− O => y
6− | S(k) => S (plus(k, y))
7− }
8−
9−fun natToInt(x) = case x of {
10− O => 0
11− | S(k) => let y = natToInt(k) in y + 1
12− }
13−
14−fun adder(arity, acc) = case arity of {
15− O => acc
16− | S(k) => adderAux(k, acc)
17− }
18−
19−fun adderAux(k, acc, n) = adder(k, plus(acc, n))
20−
21−fun zero() = O
22−fun one() = S(zero)
23−fun two() = S(one)
24−fun three() = S(two)
25−fun four() = S(three)
26−fun five() = S(four)
27−
28−fun main() = %WriteInt(natToInt(adder(three, two, three, four, five)))
29−
30−
iif/big.iifdeleted−7
@@ -1,7 +0,0 @@
1−fun fact(x) = case (x ==: 0:) of {
2− 0 => x *: fact(x - 1)
3− | _ => 1:
4− }
5−
6−fun main() = let f = fact(200:) in
7− %WriteString(%BigString(f) ++ "\n")
iif/ctest.cdeleted−106
@@ -1,106 +0,0 @@
1−#include <idris_rts.h>
2−
3−void plus(VM* vm, VAL* oldbase) {
4− INITFRAME;
5− RESERVE(2);
6− ADDTOP(2);
7−
8− switch(TAG(LOC(0))) {
9− case 0:
10− PROJECT(vm, LOC(0), 2, 0);
11− RVAL = LOC(1);
12− TOPBASE(0);
13− REBASE;
14− break;
15− case 1:
16− PROJECT(vm, LOC(0), 2, 1);
17− RESERVE(2);
18− TOP(0) = LOC(2);
19− TOP(1) = LOC(1);
20− STOREOLD;
21− BASETOP(0);
22− ADDTOP(2);
23− CALL(plus);
24− LOC(3) = RVAL;
25− RVAL = MKCON(vm, 1, 1, LOC(3));
26− TOPBASE(0);
27− REBASE;
28− break;
29− }
30−}
31−
32−void natToInt(VM* vm, VAL* oldbase) {
33− INITFRAME;
34− RESERVE(3);
35− ADDTOP(3);
36−
37− switch(TAG(LOC(0))) {
38− case 0:
39− PROJECT(vm, LOC(0), 2, 0);
40− RVAL = MKINT(0);
41− TOPBASE(0);
42− REBASE;
43− break;
44− case 1:
45− PROJECT(vm, LOC(0), 1, 1);
46− RESERVE(1);
47− TOP(0) = LOC(1);
48− STOREOLD;
49− BASETOP(0);
50− ADDTOP(1);
51− CALL(natToInt);
52− LOC(2) = RVAL;
53− RVAL = ADD(LOC(2), MKINT(1));
54− TOPBASE(0);
55− REBASE;
56− break;
57− }
58−}
59−
60−int do_main(VM* vm, VAL* oldbase) {
61− INITFRAME;
62− RESERVE(2);
63− ADDTOP(2);
64−
65− LOC(0) = MKCON(vm, 0, 0);
66− LOC(0) = MKCON(vm, 1, 1, LOC(0));
67− LOC(0) = MKCON(vm, 1, 1, LOC(0));
68−
69− dumpVal(LOC(0));
70− printf("\n");
71−
72− LOC(1) = MKCON(vm, 0, 0);
73− LOC(1) = MKCON(vm, 1, 1, LOC(1));
74− LOC(1) = MKCON(vm, 1, 1, LOC(1));
75−
76− RESERVE(2);
77− TOP(0) = LOC(0);
78− TOP(1) = LOC(1);
79−
80− STOREOLD;
81− BASETOP(0);
82− ADDTOP(2);
83− CALL(plus);
84− LOC(0) = RVAL;
85−
86− RESERVE(1);
87− TOP(0) = LOC(0);
88− SLIDE(vm, 1);
89− TOPBASE(1);
90− TAILCALL(natToInt);
91−/* STOREOLD;
92− BASETOP(0);
93− ADDTOP(1);
94− CALL(natToInt);
95− TOPBASE(0);
96− REBASE; */
97−}
98−
99−int main() {
100− VM* vm = init_vm(100,100);
101−
102− do_main(vm, NULL);
103− printf("%ld\n", GETINT(RVAL));
104−
105− printf("%d %d %d\n", vm->valstack, vm->valstack_base, vm->valstack_top);
106−}
iif/lazy.iifdeleted−21
@@ -1,21 +0,0 @@
1−data Nil 0
2−data Cons 2
3−
4−fun countFrom(x) = Cons(x, countFrom@(x+1))
5−
6−fun take(n, xs) = case n of {
7− 0 => Nil
8− | _ => case xs of {
9− Nil => Nil
10− | Cons(y, ys) => Cons(y, take(n-1, ys))
11− }
12− }
13−
14−fun dumpList(xs) = case xs of {
15− Nil => "END"
16− | Cons(y, ys) => %IntString(y) ++ ", " ++ dumpList(ys)
17− }
18−
19−fun double(x) = x + x
20−
21−fun main() = %WriteString(dumpList(take(5, countFrom(10))))
iif/testmap.iifdeleted−30
@@ -1,30 +0,0 @@
1−data Nil 0
2−data Cons 2
3−
4−fun twice(f, x) = f(f(x))
5−
6−fun map(f, xs) = case xs of {
7− Nil => Nil
8− | Cons(y, ys) => Cons(f(y), map(f, ys))
9− }
10−
11−fun dumpList(xs) = case xs of {
12− Nil => "END"
13− | Cons(y, ys) => %IntString(y) ++ ", " ++ dumpList(ys)
14− }
15−
16−fun countFrom(x) = Cons(x, countFrom@(x+1))
17−
18−fun take(n, xs) = case n of {
19− 0 => Nil
20− | _ => case xs of {
21− Nil => Nil
22− | Cons(y, ys) => Cons(y, take(n-1, ys))
23− }
24− }
25−
26−fun double(x) = x + x
27−
28−fun main() = let mult = 2 in
29− %WriteString(dumpList(map(twice(\ x => x*mult), take(1010, countFrom(10)))))
30−
iif/testvm.iifdeleted−32
@@ -1,32 +0,0 @@
1−data O 0
2−data S 1
3−
4−fun plus(x, y) = case x of {
5− O => y
6− | S(k) => S (plus(k, y))
7− }
8−
9−fun fact(x) = factAux(x, 1)
10−
11−fun factAux(x, acc) = case (x == 1) of {
12− 0 => factAux(x-1, acc * x)
13− | 1 => acc
14− }
15−
16−fun natToInt(x) = case x of {
17− O => 0
18− | S(k) => let y = natToInt(k) in y + 1
19− }
20−
21−fun intToNat(x) = case x of {
22− 0 => O
23− | _ => S (intToNat (x - 1))
24− }
25−
26−fun sin(x) = foreign C Float "sin" (Float x)
27−
28−fun main() = let val = natToInt(plus(intToNat(fact(6)), S(S(O)))) in
29− let sval = sin(1.0) in
30− %WriteString("Answer: " ++ %IntString(val)
31− ++ " " ++ %FloatString(sval))
32−