Cli*_*ton 8 haskell design-patterns
假设我有一个函数,它接受一些输入结构并返回一些输出结构(可能与输入结构有关但不同).
我不想将这些输入/输出结构强制执行到特定类型,我只是想确保它们有一些我需要的行为.
我是不是该?
a)定义一个具有适当提取方法的类,并强制输入数据作为该类的实例?或
b)让函数接受另一个参数,该参数是定义如何提取数据的函数.
我对输出结构也有同样的问题(除了这次所需的功能是变异)?
小智 10
每当您必须在显式函数参数和类型类之间进行选择时,您应该问自己这个最重要的问题:函数是特定于类型还是应用程序?前者的sort一个例子是,后者的一个例子是map.
传递函数总是更灵活,但对于您的情况可能会过度,并导致不必要的代码膨胀.另一方面,类型类会产生更小的代码,但它们的灵活性也会降低.
没有进一步的信息,这里不可能给出更准确的答案.