[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