Ko/Either

From HaskellWiki
Jump to navigation Jump to search

정의

타입 Either는 아래와 같이 정의되어 있다.

data Either a b = Left a | Right b

활용

Left는 주로 실패나 에러의 의미로 사용된다. MaybeNothing과 비슷하다.

Right는 주로 정상을 의미한다. MaybeJust와 비슷하다.

Nothing에는 인자가 없어서 에러에 대한 정보를 담을 수 없지만 Left에는 인자에 에러 정보를 담을 수 있다. 주로 문자열로 에러 정보를 담는다. 예를 들어 아래와 같이 정수를 0으로 나누는 경우 에러의 이유를 문자열로 설명한다.

safeDiv :: Int -> Int -> Either String Int
safeDiv _ 0 = Left "divide by zero"
safeDiv x y = Right (x `div` y)