On Sat, Mar 8, 2008 at 9:54 AM, Xiao-Yong Jin <[EMAIL PROTECTED]> wrote:
>  > ArrayException?  If it is out-of-bounds reading or writing, surely
>  > that indicates a bug in your program that you'd rather fix than catch
>  > the exception, no?
>
>  In my case, because I choose a index of the array according
>  to certain value in the array, if there is NaN or Infinity
>  in the array, the code breaks.  So I guess, to fix the code,
>  I would probably use isNaN/isInfinite and throw an exception
>  when that happens.

I see. In that case, you should check out the ErrorT monad transformer
(http://haskell.org/ghc/docs/latest/html/libraries/mtl/Control-Monad-Error.html#t%3AErrorT);
it lets you throw an error conveniently using Either.  It may or may
not fit your needs, but at least it's worth knowing about.

And in case you don't understand monad transformers: if you understand
the State monad, the following post is a fairly nice, minimal
explanation of monad transformers:
http://sigfpe.blogspot.com/2006/05/grok-haskell-monad-transformers.html


-- 
                              Denis
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to