[Haskell-cafe] Practical Haskell question.
Pepe Iborra
mnislaih at gmail.com
Mon Jun 25 05:15:11 EDT 2007
There is a related discussion, with a lot of pointers, in a recent
D.Piponi blog post:
http://sigfpe.blogspot.com/2007/04/homeland-security-threat-level-
monad.html
On 25/06/2007, at 10:58, peterv wrote:
> I'm baffled. So using the Arrow abstraction (which I don't know
> yet) would
> solve this problem? How can (perfectActionB x) be checked with
> without ever
> executing performActionA which evaluates to x? This can only be
> done when x
> is a constant expression no?
>
> -----Original Message-----
> From: haskell-cafe-bounces at haskell.org
> [mailto:haskell-cafe-bounces at haskell.org] On Behalf Of Tomasz Zielonka
> Sent: Monday, June 25, 2007 10:43 AM
> To: Henning Thielemann
> Cc: haskell-cafe at haskell.org
> Subject: Re: [Haskell-cafe] Practical Haskell question.
>
> On Mon, Jun 25, 2007 at 10:29:14AM +0200, Henning Thielemann wrote:
>> Imagine all performActions contain their checks somehow. Let
>> performActionB take an argument.
>>
>>> do
>>> x <- performActionA
>>> y <- performActionB x
>>> z <- performActionC
>>> return $ calculateStuff x y z
>>
>> Now performActionB and its included check depend on x. That is,
>> the check
>> relies formally on the result of performActionA and thus check B
>> must be
>> performed after performActionA.
>
> IIUC, this limitation of Monads was one of the reasons why John Hughes
> introduced the new Arrow abstraction.
>
> Best regards
> Tomek
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list