Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Re: trees on Haskell : Do I understand it right ? (Roelof Wobben)
2. Re: Random variable holding a function (Ondrej Nekola)
3. Re: trees on Haskell : Do I understand it right ? (Roelof Wobben)
4. Re: trees on Haskell : Do I understand it right ?
(Konstantine Rybnikov)
----------------------------------------------------------------------
Message: 1
Date: Thu, 26 Feb 2015 15:40:58 +0100
From: Roelof Wobben <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] trees on Haskell : Do I understand it
right ?
Message-ID: <[email protected]>
Content-Type: text/plain; charset="us-ascii"
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20150226/1ab65ec5/attachment-0001.html>
------------------------------
Message: 2
Date: Thu, 26 Feb 2015 16:48:24 +0100
From: Ondrej Nekola <[email protected]>
To: Daniel Bergey <[email protected]>, [email protected]
Subject: Re: [Haskell-beginners] Random variable holding a function
Message-ID: <[email protected]>
Content-Type: text/plain; charset=windows-1252; format=flowed
Thank you, it was very helpfull.
For reference, this is the code, that reflect Daniel's recommendation (I
hope I made no stupid mistake there):
https://github.com/satai/FrozenBeagle/blob/32f22979d7ef8d5265aa9e49982fa394e2039cf3/src/Population.hs
Thanks
Ondrej
> On 2015-02-26 at 12:42, Ondrej Nekola <[email protected]> wrote:
>> type Selection = Population -> Population
>>
>> so far, it's easy:
>>
>> allSurvive :: Selection
>> allSurvive = id
>>
>> fairChance :: Int -> Population -> RVar Population
>> fairChance newSize p = Population <$> (Data.Random.Extras.sample newSize
>> $ individuals p)
>>
>> fairChance :: Int -> RVar Selection
>> (e.g. fairChance :: Int -> RVar (Population -> Population))
>>
>> Is there a way to do this? Or should I give up this way and try to give
>> up some purity and go withtype Selection :: RVar Population -> RVar
>> population?
> I would define Selection as
>
> | type Selection = Population -> RVar Population
>
> Then you can compose with >>=, which specializes to
>
> | (>>=) :: RVar Population -> Selection -> RVar Population
>
> or with any of the other Monad operators (eg, >=>).
>
> With this definition, you can keep your current definition of
> fairChance.
>
> There's no problem defining values of type `RVar (Population ->
> Population`. `fmap allSurvive` is one such. But defining fairChance
> this way seems a bit awkward to me.
>
> Daniel
>
------------------------------
Message: 3
Date: Thu, 26 Feb 2015 19:32:05 +0100
From: Roelof Wobben <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] trees on Haskell : Do I understand it
right ?
Message-ID: <[email protected]>
Content-Type: text/plain; charset="us-ascii"
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20150226/49f38070/attachment-0001.html>
------------------------------
Message: 4
Date: Fri, 27 Feb 2015 08:41:15 +0200
From: Konstantine Rybnikov <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] trees on Haskell : Do I understand it
right ?
Message-ID:
<CAAbahfQHa2K7mwck_5t-gF+_Fbxv5A4WgOtDS4q3O4J=85a...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Roelof,
Do you get any type-errors with your code?
On Thu, Feb 26, 2015 at 8:32 PM, Roelof Wobben <[email protected]> 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 <[email protected]> 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 <[email protected]> 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
>>> [email protected]
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>>
>>
>>
>>
>> _______________________________________________
>> Beginners mailing
>> [email protected]http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>
>>
>>
>> _______________________________________________
>> Beginners mailing list
>> [email protected]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>
>>
>
>
> _______________________________________________
> Beginners mailing
> [email protected]http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
>
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20150227/2718de52/attachment.html>
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 80, Issue 67
*****************************************