gpt4 book ai didi

f# - 无法弄清楚如何从发电机制造发电机

转载 作者:行者123 更新时间:2023-12-03 23:44:15 26 4
gpt4 key购买 nike

我无法弄清楚如何在不使用 gen 的情况下制作 fscheck 生成器工作流语法并假设必须有一个好的方法来做到这一点。我最终得到一个嵌套的 Gen<Gen<...并想要一个扁平化的版本。与 option我会使用 Option.bind消除嵌套。与 seq我会使用 SelectMany .但是我没有看到那种方法出现在Gen模块。

// return a Gen<char list> as expected
// first makes a random number from 5 to 8
// and then creates a random list of characters that long
let randomListLengths =
gen {
let! len = Gen.choose(5,8)
let! item = Gen.elements ['a';'b';'c'] |> Gen.listOfLength len
return item
}

// return a Gen<Gen<char list>>
let anotherWayThatDoesNotWork =
Gen.choose(5, 8)
|> Gen.map (fun len -> Gen.elements['a';'b';'c'] |> Gen.listOfLength len)

最佳答案

您可以使用 >>=运算符(operator):

let randomListLengths =
Gen.choose(5,8)
>>= (fun len -> Gen.elements ['a';'b';'c'] |> Gen.listOfLength len)

关于f# - 无法弄清楚如何从发电机制造发电机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63856539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com