diff options
Diffstat (limited to 'fp1/week2/camil')
-rw-r--r-- | fp1/week2/camil/Makefile | 4 | ||||
-rw-r--r-- | fp1/week2/camil/StdT.dcl | 18 | ||||
-rw-r--r-- | fp1/week2/camil/StdT.icl | 37 | ||||
-rw-r--r-- | fp1/week2/camil/TupleOverloading.dcl | 25 | ||||
-rw-r--r-- | fp1/week2/camil/TupleOverloading.icl | 53 | ||||
-rw-r--r-- | fp1/week2/camil/VectorOverloading.dcl | 14 | ||||
-rw-r--r-- | fp1/week2/camil/VectorOverloading.icl | 37 |
7 files changed, 0 insertions, 188 deletions
diff --git a/fp1/week2/camil/Makefile b/fp1/week2/camil/Makefile deleted file mode 100644 index 9095df9..0000000 --- a/fp1/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/fp1/week2/camil/StdT.dcl b/fp1/week2/camil/StdT.dcl deleted file mode 100644 index ca97fdc..0000000 --- a/fp1/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/fp1/week2/camil/StdT.icl b/fp1/week2/camil/StdT.icl deleted file mode 100644 index 03c8645..0000000 --- a/fp1/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/fp1/week2/camil/TupleOverloading.dcl b/fp1/week2/camil/TupleOverloading.dcl deleted file mode 100644 index 6831948..0000000 --- a/fp1/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/fp1/week2/camil/TupleOverloading.icl b/fp1/week2/camil/TupleOverloading.icl deleted file mode 100644 index 0ea437d..0000000 --- a/fp1/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/fp1/week2/camil/VectorOverloading.dcl b/fp1/week2/camil/VectorOverloading.dcl deleted file mode 100644 index 76f8520..0000000 --- a/fp1/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/fp1/week2/camil/VectorOverloading.icl b/fp1/week2/camil/VectorOverloading.icl deleted file mode 100644 index 4c9c84a..0000000 --- a/fp1/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
- )
|