summaryrefslogtreecommitdiff
path: root/files/practicum/TupleOverloading.icl
diff options
context:
space:
mode:
authorMart Lubbers2015-02-06 08:39:37 +0100
committerMart Lubbers2015-02-06 08:39:37 +0100
commit379b6353396ca2401241d714733d570629835ffe (patch)
tree26652c854a79c627b5f50bc8ac26f9b84f8e196d /files/practicum/TupleOverloading.icl
parentMerge branch 'master' of https://github.com/dopefishh/fp1 (diff)
added practicum files, updated gitignore
Diffstat (limited to 'files/practicum/TupleOverloading.icl')
-rw-r--r--files/practicum/TupleOverloading.icl35
1 files changed, 35 insertions, 0 deletions
diff --git a/files/practicum/TupleOverloading.icl b/files/practicum/TupleOverloading.icl
new file mode 100644
index 0000000..2d34276
--- /dev/null
+++ b/files/practicum/TupleOverloading.icl
@@ -0,0 +1,35 @@
+implementation module TupleOverloading
+
+import StdEnv
+
+instance + (a,b) | + a & + b where
+instance + (a,b,c) | + a & + b & + c where
+
+
+instance - (a,b) | - a & - b where
+instance - (a,b,c) | - a & - b & - c where
+
+instance * (a,b) | * a & * b where
+instance * (a,b,c) | * a & * b & * c where
+
+instance / (a,b) | / a & / b where
+instance / (a,b,c) | / a & / b & / c where
+
+instance zero (a,b) | zero a & zero b where
+instance zero (a,b,c) | zero a & zero b & zero c where
+
+instance one (a,b) | one a & one b where
+instance one (a,b,c) | one a & one b & one c where
+
+instance ~ (a,b) | ~ a & ~ b where
+instance ~ (a,b,c) | ~ a & ~ b & ~ c where
+
+Start = (test (1,2), test (1,2,3))
+
+test a = ( zero + a == a && a == a + zero
+ , a - zero == a && a == ~ (zero - a)
+ , one * a == a && a == a * one
+ , zero * a == zero && zero == a * zero
+ , a / one == a
+ , ~ (~ a) == a
+ )