Hi Jocob I would recommend you to go through the LYH ( http://learnyouahaskell.com/making-our-own-types-and-typeclasses ) . data Either a b = Left a | Right b deriving (Eq, Ord, Read, Show)
Lets say you have a division function and you want to avoid division by zero so this simple function simpleDiv :: Int -> Int -> Int simpleDiv m n = div m n will through error and stop executing rest of you code ( See more on error handling ) so you can write your function which can handle this division :: Int -> Int -> Either String Int division m n | n == 0 = Left "Division by zero" | otherwise = Right $ div m n You can extend this solution as you wish and lets say you want both , some times integer division and some times floating point division based on flag. You set you flag true for floating division and false for integer division. data Either' a b c = Left a | Mid b | Right c deriving ( Show , Eq ) tempFunction :: Int -> Int -> Bool -> EIther' String Double Int tempFunction m n f | n == 0 = Left "Division by zero" | f = Mid $ m / n | otherwise = Right $ div m n I haven't tested this code but the idea is if you want to return different results then you use this. Also see Use of Either ( http://book.realworldhaskell.org/read/error-handling.html ). Hopefully I have explained it correctly. --Mukesh On Thu, Feb 7, 2013 at 8:07 AM, Jacob Thomas <jthom...@ucsc.edu> wrote: > > Hello > > I'm new to Haskell, and need help with figuring out the Either type... > Any example to show how this works? > > Jacob > > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe