<div dir="ltr"><div><div>In my second example you can see a minimal node with a message:<br><br>node = Node Leaf "msg" Leaf<br><br></div>Instead of either left or right Leaf you can put another value of type MessageTree, for example:<br><br></div>node = Node Leaf "msg1" (Node Leaf "msg2" Leaf)<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 26, 2015 at 4:01 PM, Roelof Wobben <span dir="ltr"><<a href="mailto:r.wobben@home.nl" target="_blank">r.wobben@home.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Oke, <br>
      <br>
      So a leaf is a node which has no "branch"<br>
      <br>
      I have made a exercise where I have to made the  logMessages. <br>
      Now I have to turn them into a tree <br>
      <br>
      Where does the second entry goes then ?<br>
      <br>
      Roelof<br>
      <br>
      <br>
      Konstantine Rybnikov schreef op 26-2-2015 om 14:56:<br>
    </div><div><div class="h5">
    <blockquote type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div>
                  <div>
                    <div>Hi Roelof,<br>
                      <br>
                    </div>
                    I think you misunderstood it.<br>
                    <br>
                  </div>
                  <div>There are two things here: types and values
                    (value-constructors). They exist in different world,
                    not touching each other.<br>
                    <br>
                  </div>
                  <div>In Haskell, you define a type as:<br>
                    <br>
                  </div>
                  <div>data <Type_Name> =
                    <ValueConstructor_Name> <Type_Name>
                    <Type_Name> <Type_Name><br>
                    <br>
                  </div>
                  <div>You can create values as:<br>
                    <br>
                  </div>
                  <div>let varName = <ValueConstructor_Name>
                    <Value> <Value> <Value><br>
                    <br>
                  </div>
                  <div>You need to put <Value> of some type, not
                    type name itself in place of those <Value>s.<br>
                    <br>
                  </div>
                  <div>So, with datatype you provided, you have two
                    data-constructors:<br>
                    <br>
                  </div>
                  <div>Leaf<br>
                    <br>
                  </div>
                  <div>and<br>
                    <br>
                  </div>
                  <div>Node <val> <val> <val><br>
                    <br>
                  </div>
                  <div>You can create a leaf:<br>
                    <br>
                  </div>
                  <div>let leaf = Leav<br>
                    <br>
                  </div>
                  <div>or a node:<br>
                    <br>
                  </div>
                  <div>let node = Node Leaf "msg" Leaf<br>
                    <br>
                  </div>
                  <div>You can see that Node is a data-constructor that
                    takes 3 values, not type-names as it's parameters.<br>
                    <br>
                  </div>
                  <div>Hope this helps.<br>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Thu, Feb 26, 2015 at 3:21 PM, Roelof
          Wobben <span dir="ltr"><<a href="mailto:r.wobben@home.nl" target="_blank">r.wobben@home.nl</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
            <br>
            Suppose we have this definition of a tree :<br>
            <br>
            data MessageTree = Leaf<br>
                             | Node MessageTree LogMessage MessageTree<br>
              deriving (Show, Eq)<br>
            <br>
            let Message  = LogMessage "E 1 this is a test error"<br>
            let Message = LogMessage "e 2 this is the second test error
            "<br>
            <br>
            As I understand it right I can make the first entry like
            this : first_entry = Node Messagetree  Message Messagetree<br>
            <br>
            And the second one like this second_entry = Node Message
            Messagetree Message2 Messagetree ??<br>
            <br>
            Roelof<br>
            <br>
            _______________________________________________<br>
            Beginners mailing list<br>
            <a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
            <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a><br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
Beginners mailing list
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a>
</pre>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br></div>