[Haskell-cafe] Laziness and Either
Henning Thielemann
lemming at henning-thielemann.de
Mon Apr 21 15:52:34 EDT 2008
On Mon, 21 Apr 2008, Donn Cave wrote:
> On Apr 21, 2008, at 11:18 AM, John Goerzen wrote:
>
>> In the case of using "error", we can happily process the data assuming
>> everything will be fine, and raise an error if and when it is encountered.
>> By using Either, however, any pattern match on the Left/Right result is
>> going to force the entire input to be evaluated so that we can know whether
>> or not it had any error.
>>
>> Is this analysis sensible? If so, are there better solutions?
>
> In another thread back on March 12 ("Exception handling when using
> STUARrray")
> I read `Since the decision between Left and Right requires all parts to be
> evaluated, it's Either that might too strict for your application. What about
> a writer monad, where exceptions, or better say warnings, are written to the
> writer stream?'
>
> I don't believe I ever got around to evaluating that recommendation (lazy
> evaluation strategy, indeed.) I think I would use "error".
Was this advise from me? I would advise the Writer monad again. 'error'
should be used only for programming errors, not for unexpected data or
situations from the outside world.
http://www.haskell.org/haskellwiki/Exception
http://www.haskell.org/haskellwiki/Error
More information about the Haskell-Cafe
mailing list