[Haskell-beginners] Writing a custom pop function for a stack data type

doaltan doaltan at yahoo.co.uk
Tue Mar 12 12:06:35 CET 2013

Actually I'm getting the error with this :

data Stack = Empty | Elem Char Stack deriving Show

pophead :: Stack -> Char
pophead Empty = Empty 
pophead (Elem x stack) = x

 From: divyanshu ranjan <idivyanshu.ranjan at gmail.com>
To: doaltan <doaltan at yahoo.co.uk>; The Haskell-Beginners Mailing List - Discussion of primarily beginner-level topics related to Haskell <beginners at haskell.org> 
Sent: Tuesday, 12 March 2013, 12:53
Subject: Re: [Haskell-beginners] Writing a custom pop function for a stack data type

You have declared new data type mystack not Stack, so haskell compiler could not find Stack data type and its constructors. Secondly data type in Haskell need to be start with capital letters like

data Mystack = Empty | Elem Char Mystack deriving Show
then correct Function definition is 
pophead :: Mystack -> Char


On Tue, Mar 12, 2013 at 4:12 PM, doaltan <doaltan at yahoo.co.uk> wrote:

Hi I have such a stack data structure: 
>datamystack =Empty |Elem Char mystack derivingShow
>I'm trying to get the head of the stack using this:
>pophead :: Stack -> Char
>pophead Empty = Empty 
>pophead (Element x stack) = x
>And I'm getting this error for the last sentence of the function :
>Not in
 scope: data constructor `Stack'
>Can you tell me how to fix it? 
>Beginners mailing list
>Beginners at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20130312/90aa5548/attachment.htm>

More information about the Beginners mailing list