[Haskell-beginners] trees on Haskell : Do I understand it right ?

Roelof Wobben r.wobben at home.nl
Sun Mar 1 19:02:42 UTC 2015


Here the diagram for 1 messages : http://imgur.com/yuzXUNB

In haskell it would be  Node Message1 leaf leaf

Roelof


Roelof Wobben schreef op 1-3-2015 om 19:08:
> Hello,
>
> Im looking for goofd online software to make the diagrams.
> As soon as I find it . I will publish them on the ML.
>
> Roelof
>
> Joel Neely schreef op 1-3-2015 om 14:45:
>> Roelof,
>>
>> Perhaps it would help for you to draw diagrams for the cases you're 
>> working.
>> If a leaf has nothing below it, and a node always has exactly three 
>> things below it (the left child, the message, and the right child),
>> what would your picture look like for 1, 2, and 3 nodes?
>> And how would you write out constructor expressions that match those 
>> shapes?
>>
>> Hope that helps,
>> -jn-
>>
>>
>> On Thu, Feb 26, 2015 at 12:32 PM, Roelof Wobben <r.wobben at home.nl 
>> <mailto:r.wobben at home.nl>> wrote:
>>
>>     Oke,
>>
>>     I send it a second time but now in plain text.
>>
>>     So for 3 it will be like this :
>>
>>     Node = Node  (Node Leaf "msg1" Leaf) (Node Leaf "msg2") (Node     
>> "msg3" Leaf)  ???
>>
>>
>>     Roelof
>>
>>
>>
>>>
>>>
>>>     Konstantine Rybnikov schreef op 26-2-2015 om 15:08:
>>>>     In my second example you can see a minimal node with a message:
>>>>
>>>>     node = Node Leaf "msg" Leaf
>>>>
>>>>     Instead of either left or right Leaf you can put another value
>>>>     of type MessageTree, for example:
>>>>
>>>>     node = Node Leaf "msg1" (Node Leaf "msg2" Leaf)
>>>>
>>>>     On Thu, Feb 26, 2015 at 4:01 PM, Roelof Wobben <r.wobben at home.nl
>>>>     <mailto:r.wobben at home.nl>> wrote:
>>>>
>>>>         Oke,
>>>>
>>>>         So a leaf is a node which has no "branch"
>>>>
>>>>         I have made a exercise where I have to made the logMessages.
>>>>         Now I have to turn them into a tree
>>>>
>>>>         Where does the second entry goes then ?
>>>>
>>>>         Roelof
>>>>
>>>>
>>>>         Konstantine Rybnikov schreef op 26-2-2015 om 14:56:
>>>>>         Hi Roelof,
>>>>>
>>>>>         I think you misunderstood it.
>>>>>
>>>>>         There are two things here: types and values
>>>>>         (value-constructors). They exist in different world, not
>>>>>         touching each other.
>>>>>
>>>>>         In Haskell, you define a type as:
>>>>>
>>>>>         data <Type_Name> = <ValueConstructor_Name> <Type_Name>
>>>>>         <Type_Name> <Type_Name>
>>>>>
>>>>>         You can create values as:
>>>>>
>>>>>         let varName = <ValueConstructor_Name> <Value> <Value> <Value>
>>>>>
>>>>>         You need to put <Value> of some type, not type name itself
>>>>>         in place of those <Value>s.
>>>>>
>>>>>         So, with datatype you provided, you have two 
>>>>> data-constructors:
>>>>>
>>>>>         Leaf
>>>>>
>>>>>         and
>>>>>
>>>>>         Node <val> <val> <val>
>>>>>
>>>>>         You can create a leaf:
>>>>>
>>>>>         let leaf = Leav
>>>>>
>>>>>         or a node:
>>>>>
>>>>>         let node = Node Leaf "msg" Leaf
>>>>>
>>>>>         You can see that Node is a data-constructor that takes 3
>>>>>         values, not type-names as it's parameters.
>>>>>
>>>>>         Hope this helps.
>>>>>
>>>>>         On Thu, Feb 26, 2015 at 3:21 PM, Roelof Wobben
>>>>>         <r.wobben at home.nl <mailto:r.wobben at home.nl>> wrote:
>>>>>
>>>>>             Hello,
>>>>>
>>>>>             Suppose we have this definition of a tree :
>>>>>
>>>>>             data MessageTree = Leaf
>>>>>                              | Node MessageTree LogMessage 
>>>>> MessageTree
>>>>>               deriving (Show, Eq)
>>>>>
>>>>>             let Message  = LogMessage "E 1 this is a test error"
>>>>>             let Message = LogMessage "e 2 this is the second test
>>>>>             error "
>>>>>
>>>>>             As I understand it right I can make the first entry
>>>>>             like this : first_entry = Node Messagetree Message
>>>>>             Messagetree
>>>>>
>>>>>             And the second one like this second_entry = Node
>>>>>             Message Messagetree Message2 Messagetree ??
>>>>>
>>>>>             Roelof
>>>>>
>>>>> _______________________________________________
>>>>>             Beginners mailing list
>>>>>             Beginners at haskell.org <mailto:Beginners at haskell.org>
>>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>         _______________________________________________
>>>>>         Beginners mailing list
>>>>>         Beginners at haskell.org <mailto:Beginners at haskell.org>
>>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>>>
>>>>
>>>>         _______________________________________________
>>>>         Beginners mailing list
>>>>         Beginners at haskell.org <mailto:Beginners at haskell.org>
>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>>>
>>>>
>>>>
>>>>
>>>>     _______________________________________________
>>>>     Beginners mailing list
>>>>     Beginners at haskell.org <mailto:Beginners at haskell.org>
>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>>
>>
>>
>>     _______________________________________________
>>     Beginners mailing list
>>     Beginners at haskell.org <mailto:Beginners at haskell.org>
>>     http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>
>>
>>
>>
>> -- 
>> Beauty of style and harmony and grace and good rhythm depend on 
>> simplicity. - Plato
>>
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>



More information about the Beginners mailing list