Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://www.haskell.org/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: Maybe monad and computations (Daniel Trstenjak)
2. Re: Maybe monad and computations (Emmanuel Touzery)
3. Re: Maybe monad and computations (Daniel Trstenjak)
4. Re: Maybe monad and computations (Emmanuel Touzery)
5. Re: Maybe monad and computations (Emmanuel Touzery)
----------------------------------------------------------------------
Message: 1
Date: Sat, 7 Sep 2013 09:11:24 +0200
From: Daniel Trstenjak <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of
primarilybeginner-level topics related to Haskell
<[email protected]>
Cc: The Haskell-Beginners Mailing List - Discussion of
primarilybeginner-level topics related to Haskell
<[email protected]>
Subject: Re: [Haskell-beginners] Maybe monad and computations
Message-ID: <[email protected]>
Content-Type: text/plain; charset="us-ascii"
Hello Emmanuel,
> And I tried to apply it to the haskell fay compiler, but failed:
> http://stackoverflow.com/questions/18667530/dont-understand-this-liftm2-behaviour-in-fay
>
> Not sure whether it's a fay bug or something about the fay monad or liftM2
> which i don't understand.
>
The point of lifting is, that you lift an operation into an other "context", so
that the operation itself hasn't to operate in the same "context".
I can't see how even your GHC version of 'operation' should work,
because in both cases it should be something like:
liftM2 (++) getValue1 getValue2
or in applicative style
(++) <$> getValue1 <*> getValue2
Greetings,
Daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130907/5f6a9aae/attachment-0001.html>
------------------------------
Message: 2
Date: Sat, 7 Sep 2013 09:31:59 +0200
From: Emmanuel Touzery <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Maybe monad and computations
Message-ID:
<CAC42Re=mz3qb0defdrusd9b3aetgzwsqpeh7mdjtqwxwmm4...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"
Well I'm trying to combine two monads here, Maybe and either the Fay or the
IO monad. In the example code I just put return but otherwise in my real
code "operation" has side-effects and needs the Fay monad in the case of
the Fay program.
I understand how to use lift if "operation" is pure, without using monads,
but I have this trouble when it operates in another monad. I thought I
understood it, but looking at the difference in behaviour in the examples I
posted, maybe I don't.
Emmanuel
On Sat, Sep 7, 2013 at 9:11 AM, Daniel Trstenjak <[email protected]
> wrote:
> Hello Emmanuel,
>
> And I tried to apply it to the haskell fay compiler, but failed:
>
> http://stackoverflow.com/questions/18667530/dont-understand-this-liftm2-behaviour-in-fay
>
> Not sure whether it's a fay bug or something about the fay monad or liftM2
> which i don't understand.
>
> The point of lifting is, that you lift an operation into an other
> "context", so
> that the operation itself hasn't to operate in the same "context".
>
> I can't see how even your GHC version of 'operation' should work,
> because in both cases it should be something like:
>
> liftM2 (++) getValue1 getValue2
>
> or in applicative style
>
> (++) <$> getValue1 <*> getValue2
>
>
> Greetings,
> Daniel
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130907/a4588a4d/attachment-0001.html>
------------------------------
Message: 3
Date: Sat, 7 Sep 2013 09:38:09 +0200
From: Daniel Trstenjak <[email protected]>
To: Daniel Trstenjak <[email protected]>
Cc: The Haskell-Beginners Mailing List - Discussion of
primarilybeginner-leveltopics related to Haskell
<[email protected]>
Subject: Re: [Haskell-beginners] Maybe monad and computations
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
> I can't see how even your GHC version of 'operation' should work ...
Ok, the GHC version puts the IO action into the Maybe and returns it then
from 'process'. There's really no need for this extra wrapping of the string
into the IO monad.
I know nothing about Fay, so I don't know why this extra wrapping shouldn't
work for Fay. Fay has an instance for Monad, right?
Greetings,
Daniel
------------------------------
Message: 4
Date: Sat, 7 Sep 2013 09:43:39 +0200
From: Emmanuel Touzery <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Maybe monad and computations
Message-ID:
<cac42rencd+fo3rbogvnfztbiv1zslo8ccfokmme-xpunmg7...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"
Yes, I agree there is no need in the GHC version to wrap it with return,
you can imagine that "operation" instead asks the user through the command
line which operation to do, (++) or just pick the first or the second
string for instance. In that case it would really need the IO monad and
that is my situation.
I didn't take the time to code it for the purpose of the example but that
is my problem. In that case liftM2 offers me a solution, I can use it also
to call functions operating in another monad than the one the parameters
are in. In Fay I have that problem with Fay monad, and I don't know why.
It's more a Fay question, but Fay normally uses GHC for typecheck so I
thought it's maybe something with the Fay monad that is obvious for someone
more knowledgeable than me.
emmanuel
On Sat, Sep 7, 2013 at 9:38 AM, Daniel Trstenjak <[email protected]
> wrote:
>
> > I can't see how even your GHC version of 'operation' should work ...
>
> Ok, the GHC version puts the IO action into the Maybe and returns it then
> from 'process'. There's really no need for this extra wrapping of the
> string
> into the IO monad.
>
> I know nothing about Fay, so I don't know why this extra wrapping shouldn't
> work for Fay. Fay has an instance for Monad, right?
>
>
> Greetings,
> Daniel
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130907/434f5270/attachment-0001.html>
------------------------------
Message: 5
Date: Sat, 7 Sep 2013 09:47:46 +0200
From: Emmanuel Touzery <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Maybe monad and computations
Message-ID:
<cac42rekwxklwwhzrkxvfxejlfjun7x2dv76n5mslweapr9p...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"
> I know nothing about Fay, so I don't know why this extra wrapping shouldn't
> work for Fay. Fay has an instance for Monad, right?
>
well when you write haskell code that you'll compile with Fay you can't use
typeclasses. So AFAIK no, the "Fay" that I use in the Fay code doesn't
implement the Monad typeclass.
OK, so it seems my Haskell code is OK, and probably my stackoverflow
question is legitimate about whether this valid Haskell code can work on
Fay. Btw I used stackoverflow because the Fay website states that they use
it as a preferred channel for support.
Thank you for the insights!
Emmanuel
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130907/99760918/attachment.html>
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 63, Issue 11
*****************************************