2017-11-26 6 views
-1

したがって、2種類の代数データ型(ADT)があります。 ScalaのOption[T]またはJavaのOptional<T>の場合、これは合計型または製品型の例ですか?どの種類の代数データ型がOption [T]またはOptionalであるか<T>

+2

私はあなたがそれを把握することができますかなり確信している:、この質問を参照してください理由を確認するには

Option(t) = 1 + t 

'Optional 'が 'T'か' T'なしのどちらかであると考えるならば。 – molbdnilo

+0

OK固定されているため –

答えて

2

ハスケルでOption[T]タイプを定義すると、合計タイプであることがわかります。

  1. None
  2. Some t

のでOption[T]Optional<T>両方のタイプTを取った後、可能な1以上の追加:タイプOption t

data Option t = None | Some t 

値が2つのもののいずれかになります。値(None)。楽しみのために


、我々はまた、代数方程式にこのADTを翻訳することができます:Abusing the algebra of algebraic data types - why does this work?

関連する問題