如何用列表替换项目并展平结果?
示例:
将3替换为List(a,b)
输入:Gen.choose
输出:
static member RelativeUrl_1() =
gen {
// let! length = Arb.generate<int> |> Gen.suchThat (fun l -> l > 0 && l <= 10)
let! length = Gen.choose (1, 10)
let! list = Gen.listOfLength length <| Generators.Alphanumeric()
return String.Join ("/", list)
}
输入:List(1, 2, 3, 4)
输出:
List(List(1, 2, a, 4)
List(1, 2, b, 4))
答案 0 :(得分:0)
这是:
def replacePermutations[A](l: Seq[A], replace: A, by: Seq[A]) = {
val byPermutationsWithRepetitions =
(by map (e => by.indices map (_ => e))) ++ by.permutations
byPermutationsWithRepetitions map { by =>
val i = Iterator.from(0)
l map { e =>
if (e == replace) by(i.next() % by.size)
else e
}
}
}
干杯