summaryrefslogtreecommitdiff
path: root/compiler/ilxGen/tests/test10.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/ilxGen/tests/test10.hs')
-rw-r--r--compiler/ilxGen/tests/test10.hs45
1 files changed, 45 insertions, 0 deletions
diff --git a/compiler/ilxGen/tests/test10.hs b/compiler/ilxGen/tests/test10.hs
new file mode 100644
index 0000000000..46c384d9e0
--- /dev/null
+++ b/compiler/ilxGen/tests/test10.hs
@@ -0,0 +1,45 @@
+
+data N = Z | S N
+
+choose1 n1 =
+ case n1 of
+ Z -> "even\n"
+ S Z -> "odd\n"
+ S (S m) -> choose1 m
+choose2 n1 n2 =
+ case n1 of
+ Z -> choose1 n2
+ S Z -> "odd\n"
+ S (S m) -> choose2 m n2
+choose3 n1 n2 n3 =
+ case n1 of
+ Z -> choose2 n2 n3
+ S Z -> "odd\n"
+ S (S m) -> choose3 m n2 n3
+
+choose4 n1 n2 n3 n4 =
+ case n1 of
+ Z -> choose3 n2 n3 n4
+ S Z -> "odd\n"
+ S (S m) -> choose4 m n2 n3 n4
+
+choose5 n1 n2 n3 n4 n5 =
+ case n1 of
+ Z -> choose4 n2 n3 n4 n5
+ S Z -> "odd\n"
+ S (S m) -> choose5 m n2 n3 n4 n5
+
+add n m =
+ case n of
+ Z -> m
+ S nn -> S (add nn m)
+
+n1 = S Z
+n2 = add n1 n1
+n4 = add n2 n2
+n6 = add n2 n4
+
+
+
+main = putStr (choose5 n6 n4 n2 n2 n1)
+