From 6f604b19d3f5966e5c1d7c4fdf3703bd6ff0861c Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Thu, 16 Apr 2015 21:22:20 +0200 Subject: update to fp2 yay, public and licence --- week2/camil/Makefile | 4 --- week2/camil/StdT.dcl | 18 ------------- week2/camil/StdT.icl | 37 --------------------------- week2/camil/TupleOverloading.dcl | 25 ------------------ week2/camil/TupleOverloading.icl | 53 --------------------------------------- week2/camil/VectorOverloading.dcl | 14 ----------- week2/camil/VectorOverloading.icl | 37 --------------------------- 7 files changed, 188 deletions(-) delete mode 100644 week2/camil/Makefile delete mode 100644 week2/camil/StdT.dcl delete mode 100644 week2/camil/StdT.icl delete mode 100644 week2/camil/TupleOverloading.dcl delete mode 100644 week2/camil/TupleOverloading.icl delete mode 100644 week2/camil/VectorOverloading.dcl delete mode 100644 week2/camil/VectorOverloading.icl (limited to 'week2/camil') diff --git a/week2/camil/Makefile b/week2/camil/Makefile deleted file mode 100644 index 9095df9..0000000 --- a/week2/camil/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: - clm StdT -o StdT - clm TupleOverloading -o TupleOverloading - clm VectorOverloading -o VectorOverloading diff --git a/week2/camil/StdT.dcl b/week2/camil/StdT.dcl deleted file mode 100644 index ca97fdc..0000000 --- a/week2/camil/StdT.dcl +++ /dev/null @@ -1,18 +0,0 @@ -definition module StdT - -import StdOverloaded - -:: T - -instance == T -instance < T - -instance zero T -instance + T -instance - T - -instance toInt T -instance fromInt T - -instance toString T -instance fromString T diff --git a/week2/camil/StdT.icl b/week2/camil/StdT.icl deleted file mode 100644 index 03c8645..0000000 --- a/week2/camil/StdT.icl +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Mart Lubbers, s4109503 - * Camil Staps, s4498062 - */ - -implementation module StdT - -import StdEnv - -:: T = {m :: Int, s :: Int} - -instance == T where == a b = a.m == b.m && a.s == b.s -instance < T where < a b = a.m < b.m || a.m == b.m && a.s < b.s - -instance zero T where zero = {m = zero, s = zero} -instance + T where + a b = fromInt (toInt a + toInt b) -instance - T where - a b = if (a < b) zero (fromInt (toInt a - toInt b)) - -instance toInt T where toInt a = a.m * 60 + a.s -instance fromInt T where fromInt n = if (n < 0) zero {m = n/60, s = n rem 60} - -instance toString T where - toString {m = x, s = 0} = toString x +++ ":00" - toString a = toString a.m +++ ":" +++ (if (a.s < 10) "0" "") +++ toString a.s -instance fromString T where - fromString s = if (s.[size s - 3] == ':') - {m = toInt (s % (0, size s - 4)), s = toInt (s % (size s - 2, size s - 1))} - zero - -Start :: (Bool, Bool, T, T, T, Int, String, T, T) -Start = (LOTR == Tea, Tea < LOTR, - zero + LOTR, LOTR + Tea, Tea - LOTR, - toInt LOTR, toString Tea, - fromString "5:40", fromString "foo") - -LOTR = {m=178, s=0} -Tea = {m=0,s=41} diff --git a/week2/camil/TupleOverloading.dcl b/week2/camil/TupleOverloading.dcl deleted file mode 100644 index 6831948..0000000 --- a/week2/camil/TupleOverloading.dcl +++ /dev/null @@ -1,25 +0,0 @@ -definition module TupleOverloading - -import StdEnv - -instance + (a,b) | + a & + b -instance + (a,b,c) | + a & + b & + c - - -instance - (a,b) | - a & - b -instance - (a,b,c) | - a & - b & - c - -instance * (a,b) | * a & * b -instance * (a,b,c) | * a & * b & * c - -instance / (a,b) | / a & / b -instance / (a,b,c) | / a & / b & / c - -instance zero (a,b) | zero a & zero b -instance zero (a,b,c) | zero a & zero b & zero c - -instance one (a,b) | one a & one b -instance one (a,b,c) | one a & one b & one c - -instance ~ (a,b) | ~ a & ~ b -instance ~ (a,b,c) | ~ a & ~ b & ~ c diff --git a/week2/camil/TupleOverloading.icl b/week2/camil/TupleOverloading.icl deleted file mode 100644 index 0ea437d..0000000 --- a/week2/camil/TupleOverloading.icl +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Mart Lubbers, s4109503 - * Camil Staps, s4498062 - */ - -implementation module TupleOverloading - -import StdEnv - -instance + (a,b) | + a & + b where - + (a,b) (c,d) = (a+c,b+d) -instance + (a,b,c) | + a & + b & + c where - + (a,b,c) (d,e,f) = (a+d,b+e,c+f) - -instance - (a,b) | - a & - b where - - (a,b) (c,d) = (a-c,b-d) -instance - (a,b,c) | - a & - b & - c where - - (a,b,c) (d,e,f) = (a-d,b-e,c-f) - -instance * (a,b) | * a & * b where - * (a,b) (c,d) = (a*c,b*d) -instance * (a,b,c) | * a & * b & * c where - * (a,b,c) (d,e,f) = (a*d,b*e,c*f) - -instance / (a,b) | / a & / b where - / (a,b) (c,d) = (a/c,b/d) -instance / (a,b,c) | / a & / b & / c where - / (a,b,c) (d,e,f) = (a/d,b/e,c/f) - -instance zero (a,b) | zero a & zero b where - zero = (zero, zero) -instance zero (a,b,c) | zero a & zero b & zero c where - zero = (zero, zero, zero) - -instance one (a,b) | one a & one b where - one = (one, one) -instance one (a,b,c) | one a & one b & one c where - one = (one, one, one) - -instance ~ (a,b) | ~ a & ~ b where - ~ (a,b) = (~ a, ~ b) -instance ~ (a,b,c) | ~ a & ~ b & ~ c where - ~ (a,b,c) = (~ a, ~ b, ~ c) - -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 - ) diff --git a/week2/camil/VectorOverloading.dcl b/week2/camil/VectorOverloading.dcl deleted file mode 100644 index 76f8520..0000000 --- a/week2/camil/VectorOverloading.dcl +++ /dev/null @@ -1,14 +0,0 @@ -definition module VectorOverloading - -import StdEnv - -:: Vector2 a = {x0 :: a, x1 :: a} - -instance == (Vector2 a) | == a -instance zero (Vector2 a) | zero a -instance one (Vector2 a) | one a -instance ~ (Vector2 a) | ~ a -instance + (Vector2 a) | + a -instance - (Vector2 a) | - a -instance * (Vector2 a) | * a -instance / (Vector2 a) | / a diff --git a/week2/camil/VectorOverloading.icl b/week2/camil/VectorOverloading.icl deleted file mode 100644 index 4c9c84a..0000000 --- a/week2/camil/VectorOverloading.icl +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Mart Lubbers, s4109503 - * Camil Staps, s4498062 - */ - -implementation module VectorOverloading - -import StdEnv - -:: Vector2 a = {x0 :: a, x1 :: a} - -instance == (Vector2 a) | == a where - == a b = a.x0 == b.x0 && a.x1 == b.x1 -instance zero (Vector2 a) | zero a where - zero = {x0 = zero, x1 = zero} -instance one (Vector2 a) | one a where - one = {x0 = one, x1 = one} -instance ~ (Vector2 a) | ~ a where - ~ a = {x0 = ~a.x0, x1 = ~a.x1} -instance + (Vector2 a) | + a where - + a b = {x0 = a.x0 + b.x0, x1 = a.x1 + b.x1} -instance - (Vector2 a) | - a where - - a b = {x0 = a.x0 - b.x0, x1 = a.x1 - b.x1} -instance * (Vector2 a) | * a where - * a b = {x0 = a.x0 * b.x0, x1 = a.x1 * b.x1} -instance / (Vector2 a) | / a where - / a b = {x0 = a.x0 / b.x0, x1 = a.x1 / b.x1} - -Start = test {x0=1,x1=2} - -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 - ) -- cgit v1.2.3