我试图围绕这篇文章:
http://www.haskell.org/haskellwiki/Scrap_your_boilerplate
即使我知道fmap是什么以及什么是仿函数(感谢"了解你的好东西"),我无法理解这篇文章.有人可以用简单的语言向我解释Haskell如何废弃样板吗?
如果你是haskell的新手,你可能不应该担心SYB.这不是基本的甚至是常用的东西(我自己从未使用过它).
SYB是Haskell的库包,不是Haskell本身的一部分,甚至不是基本库的一部分.见这里:http://www.cs.uu.nl/wiki/GenericProgramming/SYB
您可能想要阅读(最后一篇论文)http://research.microsoft.com/en-us/um/people/simonpj/papers/hmap/
http://foswiki.cs.uu.nl/foswiki/GenericProgramming/SYB可能是阅读有关 SYB 的更好资源(一些链接已损坏,因为某些内容已haskell.org更改网址,但其余部分有效)。
为了一般性地回答您的问题,这里引用了主页上的一段话:
数据类型通用编程
数据类型通用编程包括在数据类型结构上定义函数,而不是在数据类型本身上定义函数。通过这种方式,我们可以定义适用于许多不同数据类型的函数。
在SYB中,数据类型的结构不直接暴露给程序员。相反,通用组合器用于定义通用函数。这些组合器是使用 Data 和 Typeable 类的基本函数来实现的。