2017-11-26 3 views
-1

두 가지 유형의 대수 데이터 형식 (ADT)이 있습니다. 스칼라에서 Option[T] 또는 자바에서 Optional<T> 인 경우, 이것이 합계 유형 또는 제품 유형의 예입니까?어떤 유형의 대수 데이터 형식이 Option [T] 또는 Optional입니까? <T>

+2

당신이 그것을 밖으로 알아낼 수 있습니다 확신 해요 :이 질문을 참조 이유

Option(t) = 1 + t 

보고 :


재미를 위해, 우리는 또한 대수 방정식이 ADT를 번역 할 수 있습니다 'Optional '이'T' 또는'T'가 아닌 것으로 생각한다면. – molbdnilo

+0

괜찮 았기 때문에 –

답변

2

하스켈에서 Option[T] 유형을 정의하면 합계 유형이라는 것을 알 수 있습니다. 유형 Option t

data Option t = None | Some t 

값은 두 가지 중 하나 일 수 있습니다 모두 유형을

  1. None
  2. Some t

그래서 Option[T]Optional<T>T 후 1보다 가능한 추가 값 (None). Abusing the algebra of algebraic data types - why does this work?

관련 문제