0

我想生成具有不同节点类型的树。对于每个节点类型,都有可能成为该节点子节点的节点类型的不同可能组合。任何节点类型都可能没有子节点。

recursive-gen从本质上迫使我从里到外构建树,从一个叶生成器开始,该生成器生成一个没有子节点的任何类型的节点。从子生成器创建生成器的函数本质上必须生成所需的父节点类型并such-that在子生成器上使用,直到它生成所需的子节点类型。这通常会导致运行时错误,说such-that在 10 次尝试后失败。

由于无法从父生成器参数化子生成器,有哪些替代选项?

4

1 回答 1

1

类似的策略such-that是生成一个包含不受限制的子节点的完整树,然后通过过滤掉每个级别的不允许的子节点来对其进行后处理。

明显的缺点是大多数时候你可能会得到相当小的树,以及做很多一次性的工作。

于 2015-12-30T17:02:35.600 回答