我有一个“压缩”的值流,附加了该值的出现次数,例如:
let a = [ (),1; (),4; (),3;]
我想“解压缩”该序列并发出原始序列。我可以定义一个重复组合器来产生!为此
let rec repeat avalue n = seq { if n > 0 then
yield avalue; yield! repeat avalue (n-1) }
let b = seq { for v,n in a do
yield! repeat v n } |> Seq.toList
有没有办法以组合的形式表达这种内联?
let c = a |> Seq.XXX(fun e -> ...)