Lean으로 하는 함수형 프로그래밍

4. 모나드🔗

C#과 Kotlin에서 ?. 연산자는 null일 수 있는 값에 대해 프로퍼티를 조회하거나 메서드를 호출하는 방법입니다. 수신자가 null이면 전체 표현식은 null입니다. 그렇지 않으면 기저의 null이 아닌 값이 호출을 받습니다. ?.의 사용은 연쇄적으로 이어질 수 있으며, 이 경우 첫 번째 null 결과가 조회 체인을 종료시킵니다. 이처럼 널 검사를 연쇄하는 것은 깊이 중첩된 if를 작성하고 유지 관리하는 것보다 훨씬 편리합니다.

마찬가지로, 예외는 오류 코드를 수동으로 확인하고 전파하는 것보다 훨씬 더 편리합니다. 동시에, 로깅은 각 함수가 로그 결과와 반환값을 모두 반환하도록 하는 것보다는 전용 로깅 프레임워크를 갖추는 것으로 가장 쉽게 달성할 수 있습니다. 연쇄된 null 검사와 예외는 일반적으로 언어 설계자가 이러한 사용 사례를 미리 고려할 것을 요구하는 반면, 로깅 프레임워크는 일반적으로 부수 효과를 활용하여 로그를 남기는 코드와 로그의 누적을 분리합니다.

  1. 4.1. 하나의 API, 다양한 응용
  2. 4.2. 모나드 타입 클래스
  3. 4.3. 예제: 모나드에서의 산술 연산
  4. 4.4. 모나드를 위한 do-표기법
  5. 4.5. IO 모나드
  6. 4.6. 추가적인 편의 기능
  7. 4.7. 요약