たとえば、その値の出現回数が添付された値の「圧縮された」ストリームがあります。
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 -> ...)