From a7d7542dc646a5fd124ef71e71ce260889f1701b Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 2 Feb 2016 19:24:50 +0100 Subject: Moved to 1415 directory --- fp1/week2/mart/Makefile | 21 ----------- fp1/week2/mart/StdT.dcl | 18 --------- fp1/week2/mart/StdT.icl | 35 ----------------- fp1/week2/mart/StdTTest.icl | 45 ---------------------- fp1/week2/mart/TupleOverloading.dcl | 25 ------------- fp1/week2/mart/TupleOverloading.icl | 49 ------------------------ fp1/week2/mart/TupleOverloadingTest.icl | 64 -------------------------------- fp1/week2/mart/VectorOverloading.dcl | 14 ------- fp1/week2/mart/VectorOverloading.icl | 22 ----------- fp1/week2/mart/VectorOverloadingTest.icl | 62 ------------------------------- 10 files changed, 355 deletions(-) delete mode 100644 fp1/week2/mart/Makefile delete mode 100644 fp1/week2/mart/StdT.dcl delete mode 100644 fp1/week2/mart/StdT.icl delete mode 100644 fp1/week2/mart/StdTTest.icl delete mode 100644 fp1/week2/mart/TupleOverloading.dcl delete mode 100644 fp1/week2/mart/TupleOverloading.icl delete mode 100644 fp1/week2/mart/TupleOverloadingTest.icl delete mode 100644 fp1/week2/mart/VectorOverloading.dcl delete mode 100644 fp1/week2/mart/VectorOverloading.icl delete mode 100644 fp1/week2/mart/VectorOverloadingTest.icl (limited to 'fp1/week2/mart') 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 [] -- cgit v1.2.3