评论由:gfredericks
我认为有一个脏解决方案,但勉强可以接受。
要缩小到子代,你需要知道 它们是什么,包括它们的缩放树。
实现这一点的一种方法是为 {{recursive-gen}} 将它传递给用户函数的生成器用某种仪器包装,该仪器记录生成器被调用的参数(或返回值),并在最终的缩放树中添加项目,试图首先直接缩小到这些值。
对这个方法的一个小的反对意见是,即使传递的生成器被调用,并不意味着生成的值实际上被使用了(例如,它们可能已被 {{such-that}} 过滤掉)。
然而,我认为这仅在最坏的情况下会导致可能的混淆,因为传递给用户函数的生成器生成的任何东西都是整个结构生成有效事物。所以将它缩减为不可行的,即使它与它 不相关。