_由 jare_ 发表评论
> 注意,并非每个值都可以携带元数据(数字、字符串等),但这是一个有趣的想法。
由于元数据将主要用于递归/嵌套规范的工具程序开发者,这对他们来说不是什么大问题。任何希望使用它的人可以通过包装基本类型来解决这个问题。
对于最终用户的 API,类似于 spec/explain(s/explain-data, s/explain-str..) 的东西将很棒。
我将称之为 s/complexity,该函数接受一个规范并将返回与原始规范相同形状的结构(对于 s/complexity-data)(平均时间、尝试次数、规范形式的 mb...)。它应该以合理的方式处理过于复杂的规范,即而不是抛出(与生成器类似),最好报告规范哪一部分过于复杂以及其元素的个人复杂性。