我要为我的申请排队。据我了解,Data.Sequence是生产代码的最佳选择。为了保持我的代码优雅,惯用和整体的Haskelly,在我自己的Queue数据类型中包装Data.Sequence以隐藏我不需要的功能有什么问题吗?
typ*_*ern 10
完全没错-实际上,这正是newtype目的!
理想情况下,你的类型应该反映你的意图-谁读你的代码(包括你自己,在未来,当你忘记了你做了什么以及为什么)应该能够告诉类型是什么的
因此,即使您的队列只是一个Sequence,将其包装到您自己的新类型中Queue也会告诉(人类)读者“该特定序列将用于排队”-除了隐藏不需要的功能并防止混淆您的队列之外值(即没有意外地通过另一个Sequence是不应该是一个队列,以期望一个队列的函数)。