[Haskell-beginners] trees on Haskell : Do I understand it right ?
Roelof Wobben
r.wobben at home.nl
Sun Mar 1 18:08:22 UTC 2015
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