open:monad

Monad

    • 함수 실행 시 내부에 어떤 상황이 발생하더라도 최종적으로 값을 반환하는걸 보장
    • 함수 실행 시 내부에 어떤 처리할 수 없는 상황이 발생하면 값을 반환하지 못한채 중간에 Exception을 발생

Exception을 발생시키는 것을 순수 함수 관점에서는 Side Effect로 정의하기 때문에 Exception이 발생하는 함수를 비순수 함수로 정의합니다.

만약 프로그래밍 함수에서 Exception 발생시 중간에 멈추는 것이 아니라 해당 상태가 발생했음을 상태값으로써 결과에 함께 반환한다면 Side-Effect는 없어지게 됩니다. 프로그래밍 함수의 순수 함수화인 셈입니다. 이렇게 상태값과 함수 본연의 결과값을 함께 반환하기 위해서는 이 둘을 묶는 데이터 구조가 필요합니다.

Monad는 Unwrap(flatMap) 함수를 포함하는 Mappable 데이터 구조입니다.
Monad의 Mapping 함수는 결과상태 모두를 갖는 데이터 구조를 반환합니다.

모나드는 결과 데이터 구조가 상태를 갖는다는 것 뿐만 아니라 함수의 합성이 가능하다는 성질도 갖습니다.

  • open/monad.txt
  • 마지막으로 수정됨: 2021/11/21 06:26
  • 저자 127.0.0.1