X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=afp%2Fa3%2FgenericMap.icl;fp=afp%2Fa3%2FgenericMap.icl;h=0000000000000000000000000000000000000000;hb=4b62b5d397d86147e393c05b3083af74a3a0c4af;hp=b574f0d3b41dd656647211a32d926180a193fce2;hpb=e5305ee9d4290e1aa803a2e62a14f32e5cd29782;p=clean-tests.git diff --git a/afp/a3/genericMap.icl b/afp/a3/genericMap.icl deleted file mode 100644 index b574f0d..0000000 --- a/afp/a3/genericMap.icl +++ /dev/null @@ -1,39 +0,0 @@ -module genericMap - -/* - Genric map definition for assignment 3 in AFP 2018 - Pieter Koopman, pieter@cs.ru.nl - September 2018 - - Use StdEnv or iTask environment. -*/ - -import StdEnv, StdGeneric -import Data.GenEq - -generic gMap a b :: a -> b -gMap{|c|} x = x -gMap{|UNIT|} x = x -gMap{|PAIR|} f g (PAIR x y) = PAIR (f x) (g y) -gMap{|EITHER|} f g (LEFT x) = LEFT (f x) -gMap{|EITHER|} f g (RIGHT x) = RIGHT (g x) -gMap{|CONS|} f (CONS x) = CONS (f x) -gMap{|OBJECT|} f (OBJECT x) = OBJECT (f x) - -:: Bin a = Leaf | Bin (Bin a) a (Bin a) -t = Bin (Bin Leaf 1 Leaf) 2 (Bin (Bin Leaf 3 Leaf) 4 Leaf) -l = [1..7] - -fac 0 = 1 -fac n = n * fac (dec n) - -derive gMap Bin, [], (,) - -Start = - ( gMap{|*->*|} fac t - , gMap{|*->*|} (\i->(i, fac i)) l - , gMap{|*->*->*|} (gMap{|*->*|} fac) (gMap{|*->*|} fac) (l, t) - , gEq{|*|} [1,2] [1,2] - , gEq{|*|} [1,2] [2,3] - , gEq{|*->*|} (<) [1,2] [2,3] - )