diff options
Diffstat (limited to 'fp1/week2/mart')
-rw-r--r-- | fp1/week2/mart/Makefile | 21 | ||||
-rw-r--r-- | fp1/week2/mart/StdT.dcl | 18 | ||||
-rw-r--r-- | fp1/week2/mart/StdT.icl | 35 | ||||
-rw-r--r-- | fp1/week2/mart/StdTTest.icl | 45 | ||||
-rw-r--r-- | fp1/week2/mart/TupleOverloading.dcl | 25 | ||||
-rw-r--r-- | fp1/week2/mart/TupleOverloading.icl | 49 | ||||
-rw-r--r-- | fp1/week2/mart/TupleOverloadingTest.icl | 64 | ||||
-rw-r--r-- | fp1/week2/mart/VectorOverloading.dcl | 14 | ||||
-rw-r--r-- | fp1/week2/mart/VectorOverloading.icl | 22 | ||||
-rw-r--r-- | fp1/week2/mart/VectorOverloadingTest.icl | 62 |
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 []
|