Difference between revisions of "Ko/Either"
Jump to navigation
Jump to search
(문서 생성) |
m (내용 위치, 변수 이름, 함수 결과 타입 변경) |
||
Line 6: | Line 6: | ||
data Either a b = Left a | Right b |
data Either a b = Left a | Right b |
||
</haskell> |
</haskell> |
||
+ | |||
⚫ | |||
<hask>Left</hask>는 주로 실패나 에러의 의미로 사용된다. <hask>Maybe</hask>의 <hask>Nothing</hask>과 비슷하다. |
<hask>Left</hask>는 주로 실패나 에러의 의미로 사용된다. <hask>Maybe</hask>의 <hask>Nothing</hask>과 비슷하다. |
||
<hask>Right</hask>는 주로 정상을 의미한다. <hask>Maybe</hask>의 <hask>Just</hask>와 비슷하다. |
<hask>Right</hask>는 주로 정상을 의미한다. <hask>Maybe</hask>의 <hask>Just</hask>와 비슷하다. |
||
− | |||
⚫ | |||
<hask>Nothing</hask>에는 인자가 없어서 에러에 대한 정보를 담을 수 없지만 <hask>Left</hask>에는 인자에 에러 정보를 담을 수 있다. 주로 문자열로 에러 정보를 담는다. 예를 들어 아래와 같이 정수를 0으로 나누는 경우 에러의 이유를 문자열로 설명한다. |
<hask>Nothing</hask>에는 인자가 없어서 에러에 대한 정보를 담을 수 없지만 <hask>Left</hask>에는 인자에 에러 정보를 담을 수 있다. 주로 문자열로 에러 정보를 담는다. 예를 들어 아래와 같이 정수를 0으로 나누는 경우 에러의 이유를 문자열로 설명한다. |
||
<haskell> |
<haskell> |
||
− | safeDiv :: Int -> Int -> Either String |
+ | safeDiv :: Int -> Int -> Either String Int |
− | safeDiv |
+ | safeDiv _ 0 = Left "divide by zero" |
safeDiv x y = Right (x `div` y) |
safeDiv x y = Right (x `div` y) |
||
</haskell> |
</haskell> |
Latest revision as of 02:13, 14 November 2023
정의
타입 Either
는 아래와 같이 정의되어 있다.
data Either a b = Left a | Right b
활용
Left
는 주로 실패나 에러의 의미로 사용된다. Maybe
의 Nothing
과 비슷하다.
Right
는 주로 정상을 의미한다. Maybe
의 Just
와 비슷하다.
Nothing
에는 인자가 없어서 에러에 대한 정보를 담을 수 없지만 Left
에는 인자에 에러 정보를 담을 수 있다. 주로 문자열로 에러 정보를 담는다. 예를 들어 아래와 같이 정수를 0으로 나누는 경우 에러의 이유를 문자열로 설명한다.
safeDiv :: Int -> Int -> Either String Int
safeDiv _ 0 = Left "divide by zero"
safeDiv x y = Right (x `div` y)