From 6f604b19d3f5966e5c1d7c4fdf3703bd6ff0861c Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Thu, 16 Apr 2015 21:22:20 +0200 Subject: update to fp2 yay, public and licence --- week3/mart/StdStack.icl | 57 ------------------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 week3/mart/StdStack.icl (limited to 'week3/mart/StdStack.icl') diff --git a/week3/mart/StdStack.icl b/week3/mart/StdStack.icl deleted file mode 100644 index 13220e1..0000000 --- a/week3/mart/StdStack.icl +++ /dev/null @@ -1,57 +0,0 @@ -implementation module StdStack - -import StdEnv - -:: Stack a = Stack [a] - -newStack :: Stack a -newStack = Stack [] - -push :: a (Stack a) -> Stack a -push x (Stack xs) = Stack [x:xs] - -pushes :: [a] (Stack a) -> Stack a -pushes [] (Stack s) = Stack s -pushes [x:xs] (Stack s) = pushes xs (push x (Stack s)) - -pop :: (Stack a) -> Stack a -pop (Stack []) = abort "Can't pop from empty stack..." -pop (Stack [x:xs]) = Stack xs - -popn :: Int (Stack a) -> Stack a -popn 0 s = s -popn n s = popn (n-1) (pop s) - -top :: (Stack a) -> a -top (Stack []) = abort "Can't give top of empty stack..." -top (Stack [x:_]) = x - -topn :: Int (Stack a) -> [a] -topn 0 _ = [] -topn n x = [top x:topn (n-1) (pop x)] - -elements :: (Stack a) -> [a] -elements (Stack s) = s - -count :: (Stack a) -> Int -count (Stack []) = 0 -count (Stack [_:xs]) = 1 + count (Stack xs) - -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' - ) -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 -- cgit v1.2.3