这里的设计选择是什么?

时间:2011-12-03 01:41:39

标签: haskell

我正在构建一个看起来像这样的[CalendarDay]

newtype CalendarDay = MKCal (Either AvailableDay UnAvailableDay) deriving Show

现在,我通过几个带有intent的过滤器传递一个中间数据类型 一旦收集了所有信息,就构建[CalendarDay]。问题是,元组现在变成了一个四值元组。这意味着是时候做一些与众不同的事了。

我的选项似乎是两个中的一个。

1)构造一个包含四个值的记录,将其传递给每个过滤器,然后构造[CalendarDay]

2)在我浏览每个过滤器时构建[CalendarDay],完全省去中间数据类型。

欢迎提出意见。我倾向于选择2。

我要在blog条目中写下来。没有博客,但Michael Snoyman的网站将提供服务,直到我解决了这个问题。

1 个答案:

答案 0 :(得分:1)

我会尝试逐步构建该类型,将undefined值替换为找到的值。

如果依赖懒惰是没有吸引力的,你可以通过每个阶段明确定义的中间类型来保证安全。