Send Beginners mailing list submissions to beginners@haskell.org To subscribe or unsubscribe via the World Wide Web, visit http://www.haskell.org/mailman/listinfo/beginners or, via email, send a message with subject or body 'help' to beginners-requ...@haskell.org
You can reach the person managing the list at beginners-ow...@haskell.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Beginners digest..." Today's Topics: 1. Re: Type Tree variables (Ozgur Akgun) 2. Class instance for a type without a parameter (Peter Hall) 3. Re: Type Tree variables (Ozgur Akgun) 4. Re: Class instance for a type without a parameter (Ozgur Akgun) 5. Re: Class instance for a type without a parameter (Daniel Fischer) 6. A "show" error (bahad?r altan) 7. Re: A "show" error (Ozgur Akgun) ---------------------------------------------------------------------- Message: 1 Date: Sun, 11 Mar 2012 15:50:25 +0000 From: Ozgur Akgun <ozgurak...@gmail.com> Subject: Re: [Haskell-beginners] Type Tree variables To: bahad?r altan <doal...@yahoo.co.uk>, Haskell Beginners <beginners@haskell.org> Message-ID: <CALzazPAmeVdU19Z=Ey7q8a5TCj=Pq9biwpjX=me_y2_itqa...@mail.gmail.com> Content-Type: text/plain; charset="utf-8" What's the error you get? On 11 March 2012 15:37, bahad?r altan <doal...@yahoo.co.uk> wrote: > I tried "f" function but it always give errors. Thanks anyway.. > Ozgur -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.haskell.org/pipermail/beginners/attachments/20120311/1d548892/attachment-0001.htm> ------------------------------ Message: 2 Date: Sun, 11 Mar 2012 15:57:30 +0000 From: Peter Hall <peter.h...@memorphic.com> Subject: [Haskell-beginners] Class instance for a type without a parameter To: beginners@haskell.org Message-ID: <CAA6hAk5a-1HDziyNnKhGxJZce9i8=shgt1iqxx1yy2qjmm7...@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Can someone remind me why I can't do this: data Digit = D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 deriving (Eq, Ord, Show) instance Num [Digit] where ... -- This isn't allowed I could make Num a => [a] an instance of Num, but I can't make Digit also an instance of Num because D8 + D5 is not a digit. So then I could introduce a ConvertableToNum class, but I feel like I'd be heading down a path with a lot of unnecessary extra type classes. Thanks, Peter ------------------------------ Message: 3 Date: Sun, 11 Mar 2012 16:04:50 +0000 From: Ozgur Akgun <ozgurak...@gmail.com> Subject: Re: [Haskell-beginners] Type Tree variables To: bahad?r altan <doal...@yahoo.co.uk>, Haskell Beginners <beginners@haskell.org> Message-ID: <calzazpbft_4_8v8hdt64vyvj5drwdcsu6hwsvqfm8m4m6id...@mail.gmail.com> Content-Type: text/plain; charset="utf-8" You need to provide a Show instance for your data type. The easiest way is to add 'deriving Show' at the end of your data type declaration. The errors you get aren't to do with the function f. On 11 March 2012 16:01, bahad?r altan <doal...@yahoo.co.uk> wrote: > These are the ones I get, they are the same but they have different inputs > : > > Main> f (Branch 12 (Branch 7 (Branch 3 Empty Empty) (Branch 10 Empty > Empty)) (Branch 24 Empty Empty)) > ERROR - Cannot find "show" function for: > *** Expression : f (Branch 12 (Branch 7 (Branch 3 Empty Empty) (Branch 10 > Empty Empty)) (Branch 24 Empty Empty)) > *** Of type : (Integer,Integer,Tree,Tree,Integer,Tree,Tree) > > > Main> f (Branch 13 (Branch 2 Empty Empty) (Branch 48 Empty Empty)) > ERROR - Cannot find "show" function for: > *** Expression : f (Branch 13 (Branch 2 Empty Empty) (Branch 48 Empty > Empty)) > *** Of type : (Integer,Integer,Tree,Tree,Integer,Tree,Tree) > > To be clear, I need to get a tree as an input. I mean the output should be > like this : > > f (Branch a (Branch b (Branch d Empty Empty) (Branch e Empty Empty)) > (Branch c Empty Empty)) = Branch b (Branch d Empty Empty) (Branch a (Branch > e Empty Empty) (Branch c Empty Empty)) > > > Thank you very much for helping me I really appreciate it :) > > ------------------------------ > *From:* Ozgur Akgun <ozgurak...@gmail.com> > *To:* bahad?r altan <doal...@yahoo.co.uk>; Haskell Beginners < > beginners@haskell.org> > *Sent:* Sunday, 11 March 2012, 17:50 > > *Subject:* Re: [Haskell-beginners] Type Tree variables > > What's the error you get? > > On 11 March 2012 15:37, bahad?r altan <doal...@yahoo.co.uk> wrote: > > I tried "f" function but it always give errors. Thanks anyway.. > > > Ozgur > > > -- Ozgur Akgun -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.haskell.org/pipermail/beginners/attachments/20120311/d603b72b/attachment-0001.htm> ------------------------------ Message: 4 Date: Sun, 11 Mar 2012 16:09:17 +0000 From: Ozgur Akgun <ozgurak...@gmail.com> Subject: Re: [Haskell-beginners] Class instance for a type without a parameter To: peter.h...@memorphic.com Cc: beginners@haskell.org Message-ID: <CALzazPDci1y4Krxv=1KXagmRFqscC=sup+as4uwncruwl5b...@mail.gmail.com> Content-Type: text/plain; charset="utf-8" Hi, On 11 March 2012 15:57, Peter Hall <peter.h...@memorphic.com> wrote: > Can someone remind me why I can't do this: > > > data Digit = D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 > deriving (Eq, Ord, Show) > > instance Num [Digit] where ... -- This isn't allowed > Why is it not allowed? Yes, it needs FlexibleInstances, but this is a fairly common language extension so shouldn't be a big problem for most use cases. The error message generated by ghc should tell you about this. Following is what I get for example: Illegal instance declaration for `Num [Digit]' (All instance types must be of the form (T a1 ... an) where a1 ... an are *distinct type variables*, and each type variable appears at most once in the instance head. Use -XFlexibleInstances if you want to disable this.) In the instance declaration for `Num [Digit]' HTH, Ozgur -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.haskell.org/pipermail/beginners/attachments/20120311/391f36d1/attachment-0001.htm> ------------------------------ Message: 5 Date: Sun, 11 Mar 2012 17:10:56 +0100 From: Daniel Fischer <daniel.is.fisc...@googlemail.com> Subject: Re: [Haskell-beginners] Class instance for a type without a parameter To: beginners@haskell.org, peter.h...@memorphic.com Message-ID: <201203111710.56752.daniel.is.fisc...@googlemail.com> Content-Type: Text/Plain; charset="iso-8859-1" On Sunday 11 March 2012, 16:57:30, Peter Hall wrote: > Can someone remind me why I can't do this: > > > data Digit = D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 > deriving (Eq, Ord, Show) > > instance Num [Digit] where ... -- This isn't allowed > It's because the language standard says that the types in the instance head must be of the form T a1 ... ak with `T' a type constructor and the ai distinct type variables. Why that is, I don't know. You can make an instance Num [Digit] where ... if you enable {-# LANGUAGE FlexibleInstances #-} That's a harmless extension allowing instances of that form. ------------------------------ Message: 6 Date: Sun, 11 Mar 2012 19:10:28 +0000 (GMT) From: bahad?r altan <doal...@yahoo.co.uk> Subject: [Haskell-beginners] A "show" error To: "beginners@haskell.org" <beginners@haskell.org> Message-ID: <1331493028.21829.yahoomail...@web171603.mail.ir2.yahoo.com> Content-Type: text/plain; charset="iso-8859-1" Hi,? I'm trying to process on a tree with this function : f (Branch x (Branch y y1 y2) (Branch z z1 z2)) = (x,y,y1,y2,z,z1,z2) and my tree declaration is this :? data Tree = Empty | Branch Integer Tree Tree deriving (Show) And I'm getting this error :? Main> f (Branch 12 (Branch 15 Empty Empty) (Branch 28 Empty Empty)) ERROR - Cannot find "show" function for: *** Expression : f (Branch 12 (Branch 15 Empty Empty) (Branch 28 Empty Empty)) *** Of type ? ?: (Integer,Integer,Tree,Tree,Integer,Tree,Tree) I'll be happy if you help me to get rid of this error.. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.haskell.org/pipermail/beginners/attachments/20120311/ad8267ff/attachment-0001.htm> ------------------------------ Message: 7 Date: Sun, 11 Mar 2012 19:26:02 +0000 From: Ozgur Akgun <ozgurak...@gmail.com> Subject: Re: [Haskell-beginners] A "show" error To: bahad?r altan <doal...@yahoo.co.uk> Cc: "beginners@haskell.org" <beginners@haskell.org> Message-ID: <calzazpccbc1sh238ujtyy28a65vwpzp1ikwwxhvyu7fj3rk...@mail.gmail.com> Content-Type: text/plain; charset="utf-8" Hi again, What interpreter do you use? With ghci, I don't get any errors. *Main> f (Branch 12 (Branch 15 Empty Empty) (Branch 28 Empty Empty)) (12,15,Empty,Empty,28,Empty,Empty) On 11 March 2012 19:10, bahad?r altan <doal...@yahoo.co.uk> wrote: > Hi, > I'm trying to process on a tree with this function : > > f (Branch x (Branch y y1 y2) (Branch z z1 z2)) = (x,y,y1,y2,z,z1,z2) > > and my tree declaration is this : > > data Tree = Empty | Branch Integer Tree Tree deriving (Show) > > And I'm getting this error : > > Main> f (Branch 12 (Branch 15 Empty Empty) (Branch 28 Empty Empty)) > ERROR - Cannot find "show" function for: > *** Expression : f (Branch 12 (Branch 15 Empty Empty) (Branch 28 Empty > Empty)) > *** Of type : (Integer,Integer,Tree,Tree,Integer,Tree,Tree) > > I'll be happy if you help me to get rid of this error.. > -- Ozgur Akgun -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.haskell.org/pipermail/beginners/attachments/20120311/9432433f/attachment.htm> ------------------------------ _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners End of Beginners Digest, Vol 45, Issue 15 *****************************************