由 reiddraper 发布的评论
好的,让我们将其翻译为使用 {{gen/bind}}。就像使用嵌套属性那样,{{bind}} 允许您创建依赖于另一个生成器 值 的生成器。例如,您的 {{gen-random-path}} 依赖于之前生成的 {{matrix}} 变量。所以让我们编写一个生成器,该生成器返回一个 {{matrix}} 和一个 {{random-path}}。
`
(def matrix-and-path
"返回一个包含 [matrix random-path] 的二元组"
(gen/bind (gen-matrix 6)
(fn [matrix]
(gen/tuple (gen/return matrix) (gen-random-path matrix)))))
(prop/for-all [[matrix random-path] matrix-and-path]
(<= (cost (tsp matrix)) (cost random-path))
`