OO에서 자주 사용되는 명령형 프로그래밍 기술은 종종 두 가지 패턴에 의존합니다.
- 성공 또는 예외 발생
null
"값 없음"또는 실패를 표시하기 위해 리턴하십시오 .
기능적 패러다임은 일반적으로 성공 / 실패 이유 또는 값 / 값 없음을 나타내는 복합 유형을 반환하는 것을 선호하여이 두 가지를 모두 피합니다.
차별 조합은 이러한 복합 유형에 대한 법안에 적합합니다. 예를 들어 첫 번째 인스턴스에서을 반환 true
하거나 실패를 설명하는 일부 데이터 구조를 반환 할 수 있습니다 . 두 번째 경우, 값을 포함, 또는 노동 조합에서 none
, nil
등 두 번째 경우 많은 기능 언어가 내장 그 값 / 없음 조합을 표현하기 위해 "아마도"또는 "옵션"유형을 가지고, 그래서 일반적이다.
예를 들어 C #을 사용하여 기능적 스타일로 전환하면 이러한 복합 유형이 필요합니다. void/throw
그리고 null
바로 이러한 코드로 생각하지 않습니다. 그리고 차별 노동 조합 (DU)은 법안에 잘 맞습니다. 따라서 당신은 우리 중 많은 사람들처럼 자신이 원하는 것을 발견했습니다.
좋은 소식은 C #에서 DU를 모델링하는 라이브러리가 많이 있다는 것입니다 (예를 들어 내 Succinc <T> 라이브러리를 살펴보십시오).