[Haskell-beginners] Checking if a Stack is Empty

Emanuel Koczwara poczta at emanuelkoczwara.pl
Tue Mar 12 16:05:19 CET 2013


Hi,

Dnia 2013-03-12, wto o godzinie 14:48 +0000, doaltan pisze:
> Hello,
> I have this stack data structure : 
> 
> data Stack = Empty | Element Char Stack deriving Show
> I want to check if it is equal to "Empty"
> When I try something like this : 
> 
> "a = Empty" or "a = (Empty)" in a haskell file and then write this on
> ghci : "a = Empty"
> I get this : 
> 
> <interactive>:1:0:
>     No instance for (Eq Stack)
>       arising from a use of `==' at <interactive>:1:0-11
>     Possible fix: add an instance declaration for (Eq Stack)
>     In the expression: a == (Empty)
>     In the definition of `it': it = a == (Empty)
> I don't know how to fix this. Can you help me so that I can check if a
> stack is Empty without getting this error? 

  First, it looks like you should read 2 or 3 times this book:
http://learnyouahaskell.com/

  Second, you should use a function like this:

isEmpty :: Stack -> Bool
isEmpty Empty = True
isEmpty _ = False

Emanuel






More information about the Beginners mailing list