_评论由: jare_
> 请注意,并非每个值都可以携带元数据(数字、字符串等),但这是一个有趣的想法。
这并不算什么大问题,因为元数据将直接对规范工具的开发者有所帮助。任何想要使用它的人可以通过封装原语来克服这个限制。
对于最终用户API,需要有类似于spec/explain(s/explain-data, s/explain-str..)的东西。
我将称之为s/complexity,该函数接收一个规范并提供与原始规范相同结构的结构,其中包含生成复杂性数据(平均时间、尝试、mb规范形式等)。它应该以合理的方式处理过于复杂的规范,即:而不是抛出(如生成器一样),它最好报告规范中的哪个部分过于复杂及其元素的个体复杂性。