用自己的Queue类型包装Data.Sequence有什么问题吗?

时间:2019-06-10 00:45:19

标签: haskell

我要为我的申请排队。据我了解,Data.Sequence是生产代码的最佳选择。为了保持我的代码优雅,惯用和整体的Haskelly,将Data.Sequence包裹在我自己的Queue数据类型中以隐藏我不需要的功能有什么问题吗?

1 个答案:

答案 0 :(得分:10)

一点都没错-实际上,这正是newtype的目的!

理想情况下,您的类型应该反映您的意图-读取您的代码的人(包括您自己,将来,当您忘记所做的事情以及原因之后)应该能够分辨出的类型

因此,即使您的队列只是一个Sequence,将其包装到您自己的Queue新类型中也会告诉(人类)读者“该特定序列将用于排队”-除了隐藏不必要的功能并防止混淆您的值的好处(即不会意外地将另一个不是Sequence传递给需要队列的函数)。< / p>