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

Magnus Therning magnus at therning.org
Sun Mar 1 08:30:35 UTC 2015


Roelof, please consider changing your mail client to send *both* HTML
and plain-text emails!  With your current setting you send *only* HTML
sometimes and it results in a slightly broken list archive, see [1]
for an example of the result.

To boot, you also make it more difficult for those of us who use
plain-text mail clients to benefit from the diskussions you
participate in.

/M

[1]: https://mail.haskell.org/pipermail/beginners/2015-February/014808.html

On Thu, Feb 26, 2015 at 03:01:22PM +0100, Roelof Wobben wrote:
> <html>
>   <head>
>     <meta content="text/html; charset=windows-1252"
>       http-equiv="Content-Type">
>   </head>
>   <body bgcolor="#FFFFFF" text="#000000">
>     <div class="moz-cite-prefix">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>
>     <blockquote
> cite="mid:CAAbahfQO5o+Db_qy_B+vb3E6WWb1bdeQBmpAPa6E-5TwTjerjg at mail.gmail.com"
>       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 moz-do-not-send="true"
>               href="mailto:r.wobben at home.nl" target="_blank">r.wobben at 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 moz-do-not-send="true"
>               href="mailto:Beginners at haskell.org" target="_blank">Beginners at haskell.org</a><br>
>             <a moz-do-not-send="true"
>               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 class="mimeAttachmentHeader"></fieldset>
>       <br>
>       <pre wrap="">_______________________________________________
> Beginners mailing list
> <a class="moz-txt-link-abbreviated" href="mailto:Beginners at haskell.org">Beginners at haskell.org</a>
> <a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a>
> </pre>
>     </blockquote>
>     <br>
>   </body>
> </html>

> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


-- 
Magnus Therning                      OpenPGP: 0xAB4DFBA4 
email: magnus at therning.org   jabber: magnus at therning.org
twitter: magthe               http://therning.org/magnus

Heuristic is an algorithm in a clown suit. It’s less predictable, it’s more
fun, and it comes without a 30-day, money-back guarantee.
     -- Steve McConnell, Code Complete 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 163 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20150301/539f2b4a/attachment.sig>


More information about the Beginners mailing list