【发布时间】:2015-03-31 04:39:31
【问题描述】:
我想知道这在 Haskell 中是否可行:
type DateTime = Date | Time | Date :+ Time
...因此它可以是特定日期、特定时间或由两者组成的复杂值。
【问题讨论】:
-
切入重点:
Data.These -
顺便说一句,“将
Date和Time值捆绑在一起”实际上是这两种类型的产品,而不是总和。作为 ADT,你想要的写成DateTime = Date + Time + Date × Time,或者在 Haskell 中写成Either (Either Date Time) (Date, Time)。但是,最好像 AJFarmar 那样使用data定义类型,或者使用These。 -
我认为
Time是一个虚构的Date(Time = Date × sqrt(-1)):P
标签: haskell types algebraic-data-types