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/week3/camil/StdStack.icl | 66 -------------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 fp1/week3/camil/StdStack.icl (limited to 'fp1/week3/camil/StdStack.icl') diff --git a/fp1/week3/camil/StdStack.icl b/fp1/week3/camil/StdStack.icl deleted file mode 100644 index dd51a94..0000000 --- a/fp1/week3/camil/StdStack.icl +++ /dev/null @@ -1,66 +0,0 @@ -implementation module StdStack - -import StdEnv -import StdList - -:: Stack a :== [a] - -newStack :: (Stack a) -newStack = [] - -push :: a (Stack a) -> (Stack a) -push a s = [a] ++ s - -pop :: (Stack a) -> (Stack a) -pop [a:s] = s -pop [] = [] - -popn :: Int (Stack a) -> (Stack a) -popn 0 s = s -popn n s = popn (n-1) (pop s) - -pushes :: [a] (Stack a) -> (Stack a) -pushes [] s = s -pushes a s = pushes (tl a) (push (hd a) s) - -top :: (Stack a) -> a -top [] = abort "`top s` with s = []" -top s = hd s - -topn :: Int (Stack a) -> [a] -topn n s - | n > length s = abort "`topn n s` with n > length s" - | otherwise = take n s - -count :: (Stack a) -> Int -count s = length s - -elements :: (Stack a) -> [a] -elements s = s - -Start = ( "s0 = newStack = ", s0,'\n' - , "s1 = push 1 s0 = ", s1,'\n' - , "s2 = pushes [2..5] s1 = ",s2,'\n' - , "s3 = pop s2 = ", s3,'\n' - , "s4 = popn 3 s3 = ", s4,'\n' - , "s5 = top s4 = ", s5,'\n' - , "s6 = topn 3 s2 = ", s6,'\n' - , "s7 = elements s2 = ", s7,'\n' -// , "s8 = push 10 s1 = ", s8,'\n' -// , "s9 = popn 10 s8 = ", s9,'\n' -// , "sa = topn 5 s4 = ", sa,'\n' -// , "sb = top s0 = ", sb,'\n' - ) -where - s0 = newStack - s1 = push 1 s0 - s2 = pushes [2..5] s1 - s3 = pop s2 - s4 = popn 3 s3 - s5 = top s4 - s6 = topn 3 s2 - s7 = elements s2 -// s8 = push 10 s1 -// s9 = popn 10 s8 -// sa = topn 5 s4 -// sb = top s0 -- cgit v1.2.3