FP(Functional Programming) - either & maybe

cfop·2020년 10월 16일
0

Either와 Maybe 서로 변환하기

사실 뭐 거창한게 있는 것 같지만 별 것 없습니다... 상황에 맞춰서 값을 빼다가(flatten) 다시 넣어서 생성하면 그만이기 때문이죠.

Either -> Maybe

eitherToMaybe

either에서 catch 호출을 하면, catch에 넣은 함수 리턴 값이 right에 다시 담기는걸 우리는 알고 있습니다. 그 값을 flatten 해서 maybe에 넣으면 됩니다.
v가 right 이면 catch는 자기 자신의 value이기 때문에 some이 되구
v가 left 이면 catch는 catch 함수에 파라미터로 넘어온 함수의 리턴 값이 되어서 nothing 상태가 됩니다.

Maybe -> Either

maybeToEither

nothing 상태면 left,
some 상태면 flatten을 넣어서
either를 리턴 합니다.

예제


Either -> Maybe -> Either 순으로 변환 해보았습니다.


여기서 afterRes는 either.right 상태가 됩니다.
두 상태를 왔다갔다 할 수 있다는걸 보였습니다.

profile
dog발자

0개의 댓글