LYAH说:
<head> <base href="https://polygit.org/polymer+1.8.1/components/"> <script src="webcomponentsjs/webcomponents-lite.js"></script> <link rel="import" href="polymer/polymer.html"> </head> <body> <my-app></my-app> <dom-module id="my-app"> <template> <ul> <template is="dom-repeat" items="[[devices]]" as="device"> <li>[[device.name]] <ul> <template is="dom-repeat" items="[[device.components]]" as="component"> <li>[[component.name]] <ul> <my-distinct inputs="[[component.processors]]" path="type"> </my-distinct> </ul> </li> </template> </ul> </li> </template> </ul> </template> </dom-module> <dom-module id="my-distinct"> <template> <template is="dom-repeat" items="[[outputs]]" as="processorName"> <li>[[processorName]] </template> </template> </dom-module> </body>
成员是按顺序排序的类型 - 可以枚举它们。Enum
类型类的主要优点是我们可以在列表范围中使用它的类型。他们还定义了后继者和前辈,您可以使用Enum
和succ
函数获得这些后继者。此课程中的类型:pred
,()
,Bool
,Char
,Ordering
,Int
,Integer
和{{1 }}
为什么Float
是这个类型类的成员?虽然它支持所有必需的功能,但在Double
和()
始终失败的意义上它看起来并不有用,并且在列表范围内使用它只会产生{{1}本身。
答案 0 :(得分:4)
针对这些事情的非正式政策是将其作为一个实例,除非它不能(以一种守法的方式)&#34;。这个政策在过去引起了一些惊喜(Foldable
/ Traversable
个元组出现在脑海中,但是大多数情况下都是积极的。通常会遇到一些函数,您希望在各种类中使用该多态函数,并且很高兴发现它适用于您当前代码中恰好需要的具体类型,因为你的具体类型有适当的实例。