"Denis Bueno" <[EMAIL PROTECTED]> writes: > 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
Thanks. I do need to learn some monad transformers. And this post is indeed very helpful. Xiao-Yong -- c/* __o/* <\ * (__ */\ < _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe