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

Konstantine Rybnikov k-bx at k-bx.com
Thu Feb 26 13:56:59 UTC 2015


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> 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
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20150226/20b806a4/attachment.html>


More information about the Beginners mailing list