_Comment made by: jare_
> 请注意,并非每个值都可以携带元数据(数字、字符串等),但这是一个有趣的想法。
这不是什么大问题,因为元数据将主要对递归/嵌套规范对规范工具开发人员直接有用。并且希望使用它的人可以通过打包原语来克服这种限制。
对于最终用户API,类似于 spec/explain (s/explain-html, s/explain-str...) 将是很好的。
我将称呼其为 s/complexity,函数接受一个规范并返回(在 s/complexity-data 的情况下)与原始规范形状相同的数据结构,并用生成复杂度数据(平均时间、尝试次数、规范表达式的MB...)填充。它应合理地处理过于复杂的规范。即:而不是抛出(如与生成器一样),最好报告规范中的哪一部分过于复杂以及其元素的个别复杂度。