[Haskell-beginners] error: Not in scope: data constructor `BinTree'

Kak Dod kak.dod2008 at yahoo.com
Fri Apr 13 21:28:25 CEST 2012


I wants to create things that way only, 

yes, later I may add another constructor like "Leaf a" 
sorry for the confusion in my question .

now i comes to know that all I wants to know was syntax of how to write "Node BinTree a" instead of  "Node a BinTree a" and there was many horrorful error messages like: Expected kind `?', but `BinTree' has kind `k0 -> *'
that why i have panic that time
i was not seen that error earlier

thank you for answer



________________________________
 From: Kyle Murphy <orclev at gmail.com>
To: Kak Dod <kak.dod2008 at yahoo.com> 
Cc: Tom Murphy <amindfv at gmail.com>; "beginners at haskell.org" <beginners at haskell.org> 
Sent: Friday, 13 April 2012 6:32 PM
Subject: Re: [Haskell-beginners] error: Not in scope: data constructor `BinTree'
 

If you don't include "Node a" then there isn't any point in having the a parameter on BinTree as it's never used unless you add another constructor that uses it. I based the modification on the usage in your example where you're trying to store a value of 3. Without that parameter the code becomes:
b1 = Node EmptyBinTree EmptyBinTree
I haven't tried it, but that will also likely complain it can't deduce "a" from the usage.
-R. Kyle Murphy
Sent from my phone.
On Apr 13, 2012 1:03 PM, "Kak Dod" <kak.dod2008 at yahoo.com> wrote:

Thanks Tom. this is what i wanted
>I do not want "Node a" there, I wants only Node and Tom's solution works.
>Thanks to all .
>
>
>
>________________________________
> From: Tom Murphy <amindfv at gmail.com>
>To: Kak Dod <kak.dod2008 at yahoo.com> 
>Cc: Kyle Murphy <orclev at gmail.com>; "beginners at haskell.org" <beginners at haskell.org> 
>Sent: Friday, 13 April 2012 4:53 PM
>Subject: Re: [Haskell-beginners] error: Not in scope: data constructor `BinTree'
> 
>"(BinTree a)" needs to be in parentheses to pattern-match properly.
>
>data BinTree a = Node (BinTree a) (BinTree) a | EmptyBinTree
>   deriving Show
>
>On 4/13/12, Kak Dod <kak.dod2008 at yahoo.com> wrote:
>> Thank you but
>>
>> if I change the code like this:
>>
>> data BinTree a = Node BinTree a BinTree a | EmptyBinTree deriving Show
>>
>> b1 = Node 3 EmptyBinTreeEmptyBinTree
>>
>> Then I am get this error:
>>
>> bintree.hs:1:23:
>>     `BinTree' is not applied to enough type arguments
>>     Expected kind `?', but `BinTree' has kind `k0 -> *'
>>
     In the type `BinTree'
>>     In the definition of data constructor `Node'
>>     In the data type declaration for `BinTree'
>> Failed, modules loaded: none.
>>
>>
>>
>>
>> ________________________________
>>  From: Kyle Murphy <orclev at gmail.com>
>> To: Kak Dod <kak.dod2008 at yahoo.com>
>> Cc: "beginners at haskell.org" <beginners at haskell.org>
>> Sent: Friday, 13 April 2012 4:38 PM
>> Subject: Re: [Haskell-beginners] error: Not in scope: data constructor
>> `BinTree'
>>
>>
>> Your constructor
 is called Node, not BinTree.
>> data BinTree a = Node a (BinTree a) (BinTree a) | EmptyNode
>> b1 = Node 3 EmptyNode EmptyNode
>> -R. Kyle Murphy
>> Sent from my phone.
>> On Apr 13, 2012 12:24 PM, "Kak Dod" <kak.dod2008 at yahoo.com> wrote:
>>
>> if i compile the following code I get "bintree.hs:3:13: Not in scope: data
>> constructor `BinTree'"
>>>
>>>
>>>
>>>data BinTree a = Node BinTree a BinTree a | EmptyBinTree deriving Show
>>>
>>>b1 = (Node (BinTree 3) EmptyBinTree)
>>>
>>>
>>>
>>>please help
>>>
>>>
>>>-kak
>>>
>>>
>>>_______________________________________________
>>>Beginners mailing list
>>>Beginners at haskell.org
>>>http://www.haskell.org/mailman/listinfo/beginners
>>>
>>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20120414/1bc5457a/attachment.htm>


More information about the Beginners mailing list