summaryrefslogtreecommitdiff
path: root/fp1/week2/mart
diff options
context:
space:
mode:
Diffstat (limited to 'fp1/week2/mart')
-rw-r--r--fp1/week2/mart/Makefile21
-rw-r--r--fp1/week2/mart/StdT.dcl18
-rw-r--r--fp1/week2/mart/StdT.icl35
-rw-r--r--fp1/week2/mart/StdTTest.icl45
-rw-r--r--fp1/week2/mart/TupleOverloading.dcl25
-rw-r--r--fp1/week2/mart/TupleOverloading.icl49
-rw-r--r--fp1/week2/mart/TupleOverloadingTest.icl64
-rw-r--r--fp1/week2/mart/VectorOverloading.dcl14
-rw-r--r--fp1/week2/mart/VectorOverloading.icl22
-rw-r--r--fp1/week2/mart/VectorOverloadingTest.icl62
10 files changed, 0 insertions, 355 deletions
diff --git a/fp1/week2/mart/Makefile b/fp1/week2/mart/Makefile
deleted file mode 100644
index a35595b..0000000
--- a/fp1/week2/mart/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-PATHS=-I ~/downloads/clean/lib/StdLib -I ~/downloads/clean/lib/MersenneTwister/ -I ~/downloads/usr/lib64/clean/Gast/ -I ~/downloads/clean/lib/Generics/
-FLAGS=-v
-
-all: tuple vector stdtime
-
-tuple: TupleOverloading.icl TupleOverloading.dcl
- clm $(FLAGS) $(PATHS) TupleOverloadingTest -o TupleOverloadingTest
-
-vector: VectorOverloading.icl VectorOverloading.dcl
- clm $(FLAGS) $(PATHS) VectorOverloadingTest -o VectorOverloadingTest
-
-stdtime: StdT.icl StdT.dcl
- clm $(FLAGS) $(PATHS) StdTTest -o StdTTest
-
-testall:
- ./StdTTest
- ./TupleOverloadingTest
- ./VectorOverloadingTest
-
-clean:
- $(RM) -r Clean\ System\ Files a.out TupleOverloadingTest VectorOverloadingTest StdTTest
diff --git a/fp1/week2/mart/StdT.dcl b/fp1/week2/mart/StdT.dcl
deleted file mode 100644
index f4f0d75..0000000
--- a/fp1/week2/mart/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/mart/StdT.icl b/fp1/week2/mart/StdT.icl
deleted file mode 100644
index 01bee7d..0000000
--- a/fp1/week2/mart/StdT.icl
+++ /dev/null
@@ -1,35 +0,0 @@
-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.s == b.s && 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 = fromInt (toInt a - toInt b)
-
-instance toInt T where
- toInt a = a.m*60 + a.s
-instance fromInt T where
- fromInt a
- | a<0 = zero
- | otherwise = {m=a/60, s=a rem 60}
-
-instance toString T where
- toString {m=ms, s=0} = toString ms +++ ":00"
- toString {m=ms, s=ss}
- | ss < 10 = toString ms +++ ":0" +++ toString ss
- | otherwise = toString ms +++ ":" +++ toString ss
-
-instance fromString T where
- fromString a
- | a.[size a - 3] == ':' = {m = toInt (a % (0, (size a) - 4)), s = toInt (a % ((size a) - 2, size a))}
- | otherwise = zero
diff --git a/fp1/week2/mart/StdTTest.icl b/fp1/week2/mart/StdTTest.icl
deleted file mode 100644
index 6af64fc..0000000
--- a/fp1/week2/mart/StdTTest.icl
+++ /dev/null
@@ -1,45 +0,0 @@
-module StdTTest
-
-/* Test module StdTTest
- Voor werken met Gast:
- (*) gebruik Environment 'Gast'
- (*) zet Project Options op 'Basic Values Only'
-*/
-
-import StdT
-import StdEnv
-import gast
-
-Start
- = testn 1000
- (\ i ->
- gelijkheid_is_symmetrisch i /\
- ordening_is_monotoon i /\
- negatieve_tijd_bestaat_niet i /\
- omzetten_naar_Int_is_consistent i /\
- parse_print_is_consistent i /\
- True
- )
-
-t :: Int -> T
-t x = fromInt x
-
-gelijkheid_is_symmetrisch :: Int -> Property
-gelijkheid_is_symmetrisch i = name "gelijkheid_is_symmetrisch"
- (t i == t i)
-
-ordening_is_monotoon :: Int -> Property
-ordening_is_monotoon i = name "ordening_is_monotoon"
- ((i <= i+1) ==> t i <= t (i+1))
-
-negatieve_tijd_bestaat_niet :: Int -> Property
-negatieve_tijd_bestaat_niet i = name "negatieve_tijd_bestaat_niet"
- ((i + 1 >= i) ==> t i - t (i+1) == zero)
-
-omzetten_naar_Int_is_consistent :: Int -> Property
-omzetten_naar_Int_is_consistent i = name "omzetten_naar_Int_is_consistent"
- ((abs i >= 0) ==> toInt (t (abs i)) == abs i)
-
-parse_print_is_consistent :: Int -> Property
-parse_print_is_consistent i = name "parse_print_is_consistent"
- (fromString (toString (t i)) == t i)
diff --git a/fp1/week2/mart/TupleOverloading.dcl b/fp1/week2/mart/TupleOverloading.dcl
deleted file mode 100644
index 6831948..0000000
--- a/fp1/week2/mart/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/mart/TupleOverloading.icl b/fp1/week2/mart/TupleOverloading.icl
deleted file mode 100644
index 2995fbd..0000000
--- a/fp1/week2/mart/TupleOverloading.icl
+++ /dev/null
@@ -1,49 +0,0 @@
-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/mart/TupleOverloadingTest.icl b/fp1/week2/mart/TupleOverloadingTest.icl
deleted file mode 100644
index 91417f7..0000000
--- a/fp1/week2/mart/TupleOverloadingTest.icl
+++ /dev/null
@@ -1,64 +0,0 @@
-module TupleOverloadingTest
-
-/* Test module VectorOverloading
- Voor werken met Gast:
- (*) gebruik Environment 'Gast'
- (*) zet Project Options op 'Basic Values Only'
-*/
-
-import TupleOverloading
-import StdEnv
-import gast
-
-Start
- = testn 1000
- (\v ->
- zero_is_neutral_for_addition v /\
- zero_is_neutral_for_subtraction v /\
- one_is_neutral_for_multiplication v /\
- one_is_neutral_for_division v /\
- negation_is_idempotent v /\
- add_then_subtract_yields_identity v /\
- subtract_then_add_yields_identity v /\
- True
- )
-
-:: Vector2 a :== (a,a)
-:: BaseType
- :== Int
-// :== Real
-
-zero_is_neutral_for_addition :: (Vector2 BaseType) -> Property
-zero_is_neutral_for_addition a = name "zero_is_neutral_for_addition"
- (zero + a == a && a == a + zero)
-
-zero_is_neutral_for_subtraction :: (Vector2 BaseType) -> Property
-zero_is_neutral_for_subtraction a = name "zero_is_neutral_for_subtraction"
- (a - zero == a && a == ~ (zero - a))
-
-one_is_neutral_for_multiplication :: (Vector2 BaseType) -> Property
-one_is_neutral_for_multiplication a = name "one_is_neutral_for_multiplication"
- (one * a == a && a == a * one)
-
-zero_is_zero_for_multiplication :: (Vector2 BaseType) -> Property
-zero_is_zero_for_multiplication a = name "zero_is_zero_for_multiplication"
- (zero * a == zero && zero == a * zero)
-
-one_is_neutral_for_division :: (Vector2 BaseType) -> Property
-one_is_neutral_for_division a = name "one_is_neutral_for_division"
- (a / one == a)
-
-negation_is_idempotent :: (Vector2 BaseType) -> Property
-negation_is_idempotent a = name "negation_is_idempotent"
- (~ (~ a) == a)
-
-
-add_then_subtract_yields_identity :: (Vector2 BaseType) -> Property
-add_then_subtract_yields_identity a = name "add then subtract" ((a + a) - a == a)
-
-subtract_then_add_yields_identity :: (Vector2 BaseType) -> Property
-subtract_then_add_yields_identity a = name "subtract then add" ((zero - a - a) + a + a == zero)
-
-//derive genShow (,)
-//derive ggen (,)
-derive bimap []
diff --git a/fp1/week2/mart/VectorOverloading.dcl b/fp1/week2/mart/VectorOverloading.dcl
deleted file mode 100644
index 76f8520..0000000
--- a/fp1/week2/mart/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/mart/VectorOverloading.icl b/fp1/week2/mart/VectorOverloading.icl
deleted file mode 100644
index 74f6f69..0000000
--- a/fp1/week2/mart/VectorOverloading.icl
+++ /dev/null
@@ -1,22 +0,0 @@
-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}
diff --git a/fp1/week2/mart/VectorOverloadingTest.icl b/fp1/week2/mart/VectorOverloadingTest.icl
deleted file mode 100644
index e5571bb..0000000
--- a/fp1/week2/mart/VectorOverloadingTest.icl
+++ /dev/null
@@ -1,62 +0,0 @@
-module VectorOverloadingTest
-
-/* Test module VectorOverloading
- Voor werken met Gast:
- (*) gebruik Environment 'Gast'
- (*) zet Project Options op 'Basic Values Only'
-*/
-
-import VectorOverloading
-import StdEnv
-import gast
-
-Start
- = testn 1000
- (\v ->
- zero_is_neutral_for_addition v /\
- zero_is_neutral_for_subtraction v /\
- one_is_neutral_for_multiplication v /\
- one_is_neutral_for_division v /\
- negation_is_idempotent v /\
- add_then_subtract_yields_identity v /\
- subtract_then_add_yields_identity v /\
- True
- )
-
-:: BaseType
- :== Int
-// :== Real
-
-zero_is_neutral_for_addition :: (Vector2 BaseType) -> Property
-zero_is_neutral_for_addition a = name "zero_is_neutral_for_addition"
- (zero + a == a && a == a + zero)
-
-zero_is_neutral_for_subtraction :: (Vector2 BaseType) -> Property
-zero_is_neutral_for_subtraction a = name "zero_is_neutral_for_subtraction"
- (a - zero == a && a == ~ (zero - a))
-
-one_is_neutral_for_multiplication :: (Vector2 BaseType) -> Property
-one_is_neutral_for_multiplication a = name "one_is_neutral_for_multiplication"
- (one * a == a && a == a * one)
-
-zero_is_zero_for_multiplication :: (Vector2 BaseType) -> Property
-zero_is_zero_for_multiplication a = name "zero_is_zero_for_multiplication"
- (zero * a == zero && zero == a * zero)
-
-one_is_neutral_for_division :: (Vector2 BaseType) -> Property
-one_is_neutral_for_division a = name "one_is_neutral_for_division"
- (a / one == a)
-
-negation_is_idempotent :: (Vector2 BaseType) -> Property
-negation_is_idempotent a = name "negation_is_idempotent"
- (~ (~ a) == a)
-
-add_then_subtract_yields_identity :: (Vector2 BaseType) -> Property
-add_then_subtract_yields_identity a = name "add then subtract" ((a + a) - a == a)
-
-subtract_then_add_yields_identity :: (Vector2 BaseType) -> Property
-subtract_then_add_yields_identity a = name "subtract then add" ((zero - a - a) + a + a == zero)
-
-derive genShow Vector2
-derive ggen Vector2
-derive bimap []